結果
問題 |
No.510 二次漸化式
|
ユーザー |
![]() |
提出日時 | 2025-06-12 18:20:01 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 779 bytes |
コンパイル時間 | 362 ms |
コンパイル使用メモリ | 82,368 KB |
実行使用メモリ | 80,260 KB |
最終ジャッジ日時 | 2025-06-12 18:20:37 |
合計ジャッジ時間 | 28,167 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 21 TLE * 1 -- * 12 |
ソースコード
MOD = 10**9 + 7 n = int(input()) q = int(input()) x = [0] * n y = [0] * n # Initialize b array b = [0] * (n + 1) b[0] = 1 for k in range(1, n + 1): b[k] = (y[k-1] * b[k-1] + 1) % MOD for _ in range(q): parts = input().split() if parts[0] == 'x': i = int(parts[1]) v = int(parts[2]) x[i] = v elif parts[0] == 'y': i = int(parts[1]) v = int(parts[2]) y[i] = v # Recompute b from i+1 to n for k in range(i + 1, n + 1): prev = b[k-1] new_b = (y[k-1] * prev + 1) % MOD b[k] = new_b else: i = int(parts[1]) total = 1 # a_0 is 1 for k in range(i): total = (total + x[k] * (b[k] * b[k] % MOD)) % MOD print(total % MOD)