結果

問題 No.3463 Beltway
コンテスト
ユーザー t5ugu
提出日時 2026-02-01 08:19:21
言語 Python3
(3.14.3 + numpy 2.4.2 + scipy 1.17.0)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
RE  
実行時間 -
コード長 1,195 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 976 ms
コンパイル使用メモリ 20,956 KB
実行使用メモリ 20,768 KB
最終ジャッジ日時 2026-02-28 15:50:31
合計ジャッジ時間 8,536 ms
ジャッジサーバーID
(参考情報)
judge4 / judge7
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 1
other RE * 17
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

K, S, N = map(int, input().split())
MOD = 10007

def modpow(b: int, e: int):
    res = 1
    # 10005
    res = res * b % MOD
    b = b *b % MOD
    # 5002
    b = b *b % MOD
    # 2501
    res = res * b % MOD
    b = b *b % MOD
    # 1250
    b = b *b % MOD
    # 625
    res = res * b % MOD
    b = b *b % MOD
    # 312
    b = b *b % MOD
    # 156
    b = b *b % MOD
    # 78
    b = b *b % MOD
    # 39
    res = res * b % MOD
    b = b *b % MOD
    # 19
    res = res * b % MOD
    b = b *b % MOD
    # 9
    res = res * b % MOD
    b = b *b % MOD
    # 4
    b = b *b % MOD
    # 2
    b = b *b % MOD
    # 1
    res = res * b % MOD
    b = b *b % MOD
    

    # while e > 0:
    #     if e & 1 == 1:
    #         res = res * b % MOD
    #     b = b * b % MOD
    #     e >>= 1
    return res

F = [1]*K
Finv = [1] * K
for i in range(K-2):
    F[i+2] = F[i] + F[i+1]
    Finv[i+2] = modpow(F[i+2], MOD-2)

A = [0] * N
A[0] = S

for n in range(K):
    acc = 0
    for k in range(0, n+1):
        acc = (acc + A[n-k] * Finv[k]) % MOD
    A[n+1] = acc

for n in range(K, N-1):
    acc = 0
    for k in range(0, K):
        acc = (acc + A[n-k] * Finv[k]) % MOD
    A[n+1] = acc
print(A[N-1])
0