結果

問題 No.269 見栄っ張りの募金活動
コンテスト
ユーザー LyricalMaestro
提出日時 2026-01-19 22:12:26
言語 PyPy3
(7.3.17)
結果
AC  
実行時間 124 ms / 5,000 ms
コード長 666 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 363 ms
コンパイル使用メモリ 82,452 KB
実行使用メモリ 75,548 KB
最終ジャッジ日時 2026-01-19 22:12:29
合計ジャッジ時間 2,907 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 22
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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

MOD = 10 ** 9 + 7

def main():
    N, S, K = map(int, input().split())

    dp = [0] * (S + 1)
    x = 0
    while x <= S:
        dp[x] = 1
        x += N

    for i in range(1, N):
        n = N - i
        new_dp = [0] * (S + 1)

        cum_dp = [0] * (n + 1)
        for x0 in range(S + 1):
            y = x0 // n
            if y >= K:
                cum_dp[x0 % n] += dp[(x0 % n) + ((y - K) * n)]
                cum_dp[x0 % n] %= MOD        

            new_dp[x0] += cum_dp[x0 % n]
            new_dp[x0] %= MOD
            
        dp = new_dp
    
    print(dp[S])
    





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