Submission #70658348


Source Code Expand

#include <algorithm>
#include <iostream>
#include <vector>

#include <atcoder/all>


int main()
{
    using namespace std;
    using mint = atcoder::modint998244353;
    int n, m, l;
    cin >> n >> m >> l;
    vector<mint> f(n + 1);
    f[0] = 1;
    auto push = [&](int x) {
        for (int i = 0; i + x <= n; ++i) {
            f[i + x] += f[i];
        }
    };
    auto pop = [&](int x) {
        for (int i = n + 1 - x; i-- > 0;) {
            f[i + x] -= f[i];
        }
    };
    // mi == 1
    for (int x = 0; x < l; ++x) push(1 + x);
    cout << f[n].val() << '\n';
    for (int mi = 2; mi <= m - l + 1; ++mi) {
        pop(mi - 1);
        push(mi + l - 1);
        cout << f[n].val() << '\n';
    }
}

Submission Info

Submission Time
Task G - Coin
User wasd314
Language C++ 23 (gcc 12.2)
Score 3
Code Size 749 Byte
Status AC
Exec Time 16 ms
Memory 3572 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 3 / 3
Status
AC × 2
AC × 7
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, 01_random_02.txt, 01_random_03.txt, 02_max_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 11 ms 3504 KiB
00_sample_01.txt AC 7 ms 3488 KiB
01_random_00.txt AC 8 ms 3496 KiB
01_random_01.txt AC 15 ms 3440 KiB
01_random_02.txt AC 7 ms 3404 KiB
01_random_03.txt AC 14 ms 3536 KiB
02_max_00.txt AC 16 ms 3572 KiB