Submission #1544804


Source Code Expand

#include <bits/stdc++.h>
using ll = long long;
using ld = long double;
using namespace std;

const int MAXN = 1000001;

const int MOD = 998244353;

class Num {
    ll value;

    static Num& convert(ll& v) {
        return reinterpret_cast<Num&>(v).mod();
    }

    static Num convert(ll&& v) {
        return v;
    }

public:

    Num(ll v = 0)
        : value(v) {
        mod();
    }

    Num& mod() {
        value %= MOD;
        return *this;
    }

#define Op(op) decltype(auto) operator op(const Num& other) {return convert(value op other.value);}

    explicit operator ll() {
        return value;
    }

    Op(+) Op(*) Op(-) Op(+=) Op(*=)
};

ll pw(ll a, int b = MOD - 2) {
    if (b == 0) return 1;
    ll v = pw(a, b / 2);
    v = (v * v) % MOD;
    if (b & 1) v = (v * a) % MOD;
    return v;
}

Num rever(Num other) {
    return pw(ll(other));
} 

Num fact[MAXN];
Num rev[MAXN];
const Num rev2 = (MOD + 1) / 2;

Num cnk(ll n, ll m) {
    return fact[n + m] * rev[m] * rev[n];
}

    
int main() {
#ifdef PAUNSVOKNO
    freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
#endif
    ios_base::sync_with_stdio(false); cout.setf(ios::fixed); cout.precision(20);
    int n, m;
    cin >> n >> m;
    int s = n + m;
    fact[0] = 1;
    for (int i = 1; i <= s; i++) {
        fact[i] = fact[i - 1] * i;
    }

    rev[s] = rever(fact[s]);

    for (int i = s - 1; i >= 0; i--)
        rev[i] = rev[i + 1] * (i + 1);

    Num ans = cnk(n, m) * (2ll * max(n, m) - 1);

    for (int i = 0; i <= min(n, m); i++) {
        ans += cnk(i, i) * cnk(n - i, m - i);
    }

    ans *= rever(cnk(n, m));
    ans *= rever(2);

    cout << ll(ans) << "\n";
}

Submission Info

Submission Time
Task F - Yes or No
User cospleermusora
Language C++14 (GCC 5.4.1)
Score 2000
Code Size 1766 Byte
Status AC
Exec Time 21 ms
Memory 15872 KB

Judge Result

Set Name Sample Partial All
Score / Max Score 0 / 0 1500 / 1500 500 / 500
Status
AC × 5
AC × 28
AC × 75
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt
Partial sample_01.txt, sample_02.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_2_01.txt, subtask_2_02.txt, subtask_2_03.txt, subtask_2_04.txt, subtask_2_05.txt, subtask_2_06.txt, subtask_2_07.txt, subtask_2_08.txt, subtask_2_09.txt, subtask_2_10.txt, subtask_2_11.txt, subtask_2_12.txt, subtask_2_13.txt, subtask_2_14.txt, subtask_2_15.txt, subtask_2_16.txt, subtask_2_17.txt, subtask_2_18.txt, subtask_2_19.txt, subtask_2_20.txt, subtask_2_21.txt, subtask_2_22.txt, subtask_2_23.txt, subtask_2_24.txt, subtask_2_25.txt, subtask_2_26.txt, subtask_2_27.txt, subtask_2_28.txt, subtask_2_29.txt, subtask_2_30.txt, subtask_2_31.txt, subtask_2_32.txt, subtask_2_33.txt, subtask_2_34.txt, subtask_2_35.txt, subtask_2_36.txt, subtask_2_37.txt, subtask_2_38.txt, subtask_2_39.txt, subtask_2_40.txt
Case Name Status Exec Time Memory
sample_01.txt AC 5 ms 15872 KB
sample_02.txt AC 5 ms 15872 KB
sample_03.txt AC 5 ms 15872 KB
sample_04.txt AC 6 ms 15872 KB
sample_05.txt AC 6 ms 15872 KB
subtask_1_01.txt AC 6 ms 15872 KB
subtask_1_02.txt AC 6 ms 15872 KB
subtask_1_03.txt AC 6 ms 15872 KB
subtask_1_04.txt AC 6 ms 15872 KB
subtask_1_05.txt AC 6 ms 15872 KB
subtask_1_06.txt AC 6 ms 15872 KB
subtask_1_07.txt AC 6 ms 15872 KB
subtask_1_08.txt AC 6 ms 15872 KB
subtask_1_09.txt AC 6 ms 15872 KB
subtask_1_10.txt AC 6 ms 15872 KB
subtask_1_11.txt AC 6 ms 15872 KB
subtask_1_12.txt AC 6 ms 15872 KB
subtask_1_13.txt AC 6 ms 15872 KB
subtask_1_14.txt AC 7 ms 15872 KB
subtask_1_15.txt AC 9 ms 15872 KB
subtask_1_16.txt AC 9 ms 15872 KB
subtask_1_17.txt AC 9 ms 15872 KB
subtask_1_18.txt AC 9 ms 15872 KB
subtask_1_19.txt AC 9 ms 15872 KB
subtask_1_20.txt AC 9 ms 15872 KB
subtask_1_21.txt AC 9 ms 15872 KB
subtask_1_22.txt AC 8 ms 15872 KB
subtask_1_23.txt AC 9 ms 15872 KB
subtask_1_24.txt AC 9 ms 15872 KB
subtask_1_25.txt AC 8 ms 15872 KB
subtask_2_01.txt AC 5 ms 15872 KB
subtask_2_02.txt AC 5 ms 15872 KB
subtask_2_03.txt AC 5 ms 15872 KB
subtask_2_04.txt AC 20 ms 15872 KB
subtask_2_05.txt AC 20 ms 15872 KB
subtask_2_06.txt AC 21 ms 15872 KB
subtask_2_07.txt AC 20 ms 15872 KB
subtask_2_08.txt AC 20 ms 15872 KB
subtask_2_09.txt AC 21 ms 15872 KB
subtask_2_10.txt AC 21 ms 15872 KB
subtask_2_11.txt AC 21 ms 15872 KB
subtask_2_12.txt AC 21 ms 15872 KB
subtask_2_13.txt AC 21 ms 15872 KB
subtask_2_14.txt AC 21 ms 15872 KB
subtask_2_15.txt AC 21 ms 15872 KB
subtask_2_16.txt AC 21 ms 15872 KB
subtask_2_17.txt AC 21 ms 15872 KB
subtask_2_18.txt AC 20 ms 15872 KB
subtask_2_19.txt AC 18 ms 15872 KB
subtask_2_20.txt AC 11 ms 15872 KB
subtask_2_21.txt AC 11 ms 15872 KB
subtask_2_22.txt AC 11 ms 15872 KB
subtask_2_23.txt AC 11 ms 15872 KB
subtask_2_24.txt AC 11 ms 15872 KB
subtask_2_25.txt AC 11 ms 15872 KB
subtask_2_26.txt AC 11 ms 15872 KB
subtask_2_27.txt AC 11 ms 15872 KB
subtask_2_28.txt AC 11 ms 15872 KB
subtask_2_29.txt AC 11 ms 15872 KB
subtask_2_30.txt AC 13 ms 15872 KB
subtask_2_31.txt AC 15 ms 15872 KB
subtask_2_32.txt AC 21 ms 15872 KB
subtask_2_33.txt AC 21 ms 15872 KB
subtask_2_34.txt AC 21 ms 15872 KB
subtask_2_35.txt AC 21 ms 15872 KB
subtask_2_36.txt AC 21 ms 15872 KB
subtask_2_37.txt AC 13 ms 15872 KB
subtask_2_38.txt AC 11 ms 15872 KB
subtask_2_39.txt AC 20 ms 15872 KB
subtask_2_40.txt AC 13 ms 15872 KB