Submission #70655742


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

const long long MOD = 998244353;

struct Comb {
    int nmax;
    vector<long long> fact, ifact;
    long long modpow(long long a, long long e){
        long long r=1%MOD;
        while(e){
            if(e&1) r=r*a%MOD;
            a=a*a%MOD;
            e>>=1;
        }
        return r;
    }
    Comb(int n): nmax(n), fact(n+1), ifact(n+1){
        fact[0]=1;
        for(int i=1;i<=n;i++) fact[i]=fact[i-1]*i%MOD;
        ifact[n]=modpow(fact[n], MOD-2);
        for(int i=n;i>0;i--) ifact[i-1]=ifact[i]*i%MOD;
    }
    long long C(int n,int k){
        if(n<0||k<0||k>n) return 0;
        return fact[n]*ifact[k]%MOD*ifact[n-k]%MOD;
    }
};

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int N, M, S;
    if(!(cin >> N >> M >> S)) return 0;
    if(1LL*N*M < S){ cout << 0 << '\n'; return 0; }
    Comb cb(N + S);
    long long ans = 0;
    int step = M + 1;
    for(int k=0; 1LL*k*step<=S && k<=N; ++k){
        long long ways_upper = cb.C(N, k);
        long long ways_sum = cb.C(S - k*step + N - 1, N - 1);
        long long term = ways_upper * ways_sum % MOD;
        if(k&1) ans = (ans - term + MOD) % MOD;
        else ans = (ans + term) % MOD;
    }
    cout << ans % MOD << '\n';
    return 0;
}

Submission Info

Submission Time
Task C - Sequence
User SegMan123
Language C++ 20 (gcc 12.2)
Score 3
Code Size 1332 Byte
Status AC
Exec Time 8 ms
Memory 9460 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 3 / 3
Status
AC × 2
AC × 9
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 02_m_small_00.txt, 02_m_small_01.txt, 02_m_small_02.txt, 03_max_00.txt, 04_min_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3416 KiB
00_sample_01.txt AC 3 ms 4600 KiB
01_random_00.txt AC 4 ms 5380 KiB
01_random_01.txt AC 5 ms 7456 KiB
02_m_small_00.txt AC 8 ms 9360 KiB
02_m_small_01.txt AC 8 ms 9200 KiB
02_m_small_02.txt AC 8 ms 9460 KiB
03_max_00.txt AC 7 ms 9380 KiB
04_min_00.txt AC 1 ms 3344 KiB