結果

問題 No.2550 MORE! JUMP! MORE!
コンテスト
ユーザー LyricalMaestro
提出日時 2026-09-09 23:30:06
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 78 ms / 2,000 ms
+ 298µs
コード長 1,222 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 67 ms
コンパイル使用メモリ 82,556 KB
実行使用メモリ 122,880 KB
最終ジャッジ日時 2026-09-09 23:30:14
合計ジャッジ時間 5,818 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 40
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

## https://yukicoder.me/problems/no/2550

MOD = 998244353

def main():
    N = int(input())
    A = list(map(int, input().split()))

    pattern_sum = [0] * (N + 1)
    steps_sum = [0] * (N + 1)
    score_sum = [0] * (N + 1)
    cum_pattern_sum = [0] * (N + 1)
    cum_steps_sum = [0] * (N + 1)
    cum_score_sum = [0] * (N + 1)
    pattern_sum[0] = 1
    cum_pattern_sum[0] = 1

    for i in range(N):
        pattern_sum[i + 1] += cum_pattern_sum[i]
        pattern_sum[i + 1] %= MOD

        steps_sum[i + 1] += cum_steps_sum[i]
        steps_sum[i + 1] %= MOD
        steps_sum[i + 1] += cum_pattern_sum[i]
        steps_sum[i + 1] %= MOD

        score_sum[i + 1] += (steps_sum[i + 1] * A[i]) % MOD
        score_sum[i + 1] %= MOD
        score_sum[i + 1] += cum_score_sum[i]
        score_sum[i + 1] %= MOD

        cum_pattern_sum[i + 1] += (pattern_sum[i + 1] + cum_pattern_sum[i]) % MOD
        cum_pattern_sum[i + 1] %= MOD
        cum_steps_sum[i + 1] += (steps_sum[i + 1] + cum_steps_sum[i]) % MOD
        cum_steps_sum[i + 1] %= MOD
        cum_score_sum[i + 1] += (score_sum[i + 1] + cum_score_sum[i]) % MOD
        cum_score_sum[i + 1] %= MOD

    print(score_sum[-1])

if __name__ == "__main__":
    main()
0