結果

問題 No.2391 SAN 値チェック
ユーザー lam6er
提出日時 2025-03-31 17:35:55
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 977 bytes
コンパイル時間 158 ms
コンパイル使用メモリ 82,752 KB
実行使用メモリ 82,644 KB
最終ジャッジ日時 2025-03-31 17:36:35
合計ジャッジ時間 3,519 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 3 WA * 14
権限があれば一括ダウンロードができます

ソースコード

diff #

MOD = 998244353
MAX = 2 * 10**5 + 10

# Precompute factorial and inverse factorial
fact = [1] * (MAX)
for i in range(1, MAX):
    fact[i] = fact[i-1] * i % MOD

inv_fact = [1] * (MAX)
inv_fact[MAX-1] = pow(fact[MAX-1], MOD-2, MOD)
for i in range(MAX-2, -1, -1):
    inv_fact[i] = inv_fact[i+1] * (i+1) % MOD

N = int(input())

for k in range(0, N+1):
    if k == 0:
        print(0)
    else:
        power = (N - k) % 2
        sign = 1 if power == 0 else MOD - 1  # (-1)^(N-k)
        
        # Calculate C(n-1, k-1)
        n_minus1 = N-1
        k_minus1 = k-1
        if k_minus1 < 0 or k_minus1 > n_minus1:
            comb = 0
        else:
            comb = fact[n_minus1] * inv_fact[k_minus1] % MOD
            comb = comb * inv_fact[n_minus1 - k_minus1] % MOD
        
        # inv_fact for (n -k)!
        term = N - k
        denominator = inv_fact[term] if term >=0 else 0
        res = sign * comb % MOD
        res = res * denominator % MOD
        print(res)
0