結果

問題 No.510 二次漸化式
ユーザー gew1fw
提出日時 2025-06-12 13:16:56
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 779 bytes
コンパイル時間 175 ms
コンパイル使用メモリ 82,780 KB
実行使用メモリ 80,392 KB
最終ジャッジ日時 2025-06-12 13:19:46
合計ジャッジ時間 30,815 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 20 TLE * 2 -- * 12
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0