結果
| 問題 | 
                            No.269 見栄っ張りの募金活動
                             | 
                    
| コンテスト | |
| ユーザー | 
                             yaoshimax
                         | 
                    
| 提出日時 | 2016-05-11 21:09:39 | 
| 言語 | PyPy2  (7.3.15)  | 
                    
| 結果 | 
                             
                                MLE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 732 bytes | 
| コンパイル時間 | 160 ms | 
| コンパイル使用メモリ | 76,840 KB | 
| 実行使用メモリ | 849,672 KB | 
| 最終ジャッジ日時 | 2024-10-05 13:48:07 | 
| 合計ジャッジ時間 | 4,178 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 1 MLE * 1 -- * 20 | 
ソースコード
N,S,K=map(int,raw_input().split())
S-=K*N*(N-1)/2
if S < 0:
    print 0
    exit()
dp=[[[0 for i in range(S+1)] for j in range(S+1)] for k in range(2)]
mod=1000000007
dp[0][0][0]=1
for ni in range(1,N+1):
    for cur in range(S+1):
        for tot in range(S+1):
            if cur>tot:
                dp[ni%2][cur][tot]=0
                continue
            dp[ni%2][cur][tot]=dp[1-(ni%2)][cur][tot-cur]
            if cur >0:
                dp[ni%2][cur][tot] += dp[ni%2][cur-1][tot-1]
            dp[ni%2][cur][tot]%=mod 
            #if dp[ni%2][cur][tot]!=0:
            #    print ni, cur, tot, ":", dp[ni%2][cur][tot]
ans=0
for i in range(S+1):
    #print i, dp[N%2][i][S]
    ans+=dp[N%2][i][S]
    ans%=mod
print ans
            
            
            
        
            
yaoshimax