結果

問題 No.1540 級数おもちゃ
ユーザー dachengz
提出日時 2022-12-13 13:55:53
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 83 ms / 2,000 ms
コード長 709 bytes
コンパイル時間 187 ms
コンパイル使用メモリ 81,904 KB
実行使用メモリ 86,272 KB
最終ジャッジ日時 2024-11-07 09:18:21
合計ジャッジ時間 4,620 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

mod = 998244353
N = int(input())
A = [int(_) for _ in input().split()]
inv = [1] * max(N + 1, 4)

for i in range(2, max(N + 1, 4)):
    inv[i] = mod - mod // i * inv[mod % i] % mod

ans = [0, 0, 0]
coef = [[4, mod - 2, 0], [0, 0, inv[3]]]
if N >= 1:
    ans[2] = (ans[2] + coef[1][2] * A[0]) % mod
if N >= 2:
    ans[0] = (ans[0] + coef[0][0] * A[1]) % mod
    ans[1] = (ans[1] + coef[0][1] * A[1]) % mod
for j, a in enumerate(A[2:], start=3):
    arr = coef[j & 1]
    mul = 4 * (j - 2) * inv[j - 1] % mod
    for i in range(3):
        arr[i] = arr[i] * mul % mod
    arr[1] = (arr[1] - 2 * inv[j - 1]) % mod
    for i in range(3):
        ans[i] = (ans[i] + arr[i] * a) % mod
print(ans[0], ans[1], ans[2])
0