結果
問題 | No.269 見栄っ張りの募金活動 |
ユーザー | nouka28 |
提出日時 | 2023-03-08 06:41:52 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 8 ms / 5,000 ms |
コード長 | 863 bytes |
コンパイル時間 | 2,450 ms |
コンパイル使用メモリ | 249,152 KB |
実行使用メモリ | 19,012 KB |
最終ジャッジ日時 | 2024-09-18 02:27:28 |
合計ジャッジ時間 | 3,361 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
#include<bits/stdc++.h> #include<omp.h> using namespace std; #define int long long #define rep(i,n) for(int i=0;i<n;++i) #define rep1(i,n) for(int i=1;i<=n;++i) #define reps(i,a,b) for(int i=a;i<b;++i) #define repnega(i,a,b) for(int i=b;i>a;i--) #define mod 1000000007 #define endl '\n' #define AC ios_base::sync_with_stdio(false);cin.tie(0); #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") int dp[109][20009]; signed main(){ int n,m,k; cin>>n>>m>>k; rep(i,n)m-=k*i; if(m<0){ cout<<0<<endl; return 0; } dp[0][0]=1; rep1(i,n)rep(j,m+1){ if(j-i>=0){ dp[i][j]=(dp[i-1][j]+dp[i][j-i])%mod; }else{ dp[i][j]=dp[i-1][j]; } } cout<<dp[n][m]<<endl; }