結果
問題 | No.269 見栄っ張りの募金活動 |
ユーザー |
|
提出日時 | 2020-05-08 23:42:03 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 8 ms / 5,000 ms |
コード長 | 1,563 bytes |
コンパイル時間 | 1,569 ms |
コンパイル使用メモリ | 170,320 KB |
実行使用メモリ | 11,312 KB |
最終ジャッジ日時 | 2024-07-04 01:16:24 |
合計ジャッジ時間 | 2,483 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
#include"bits/stdc++.h"using namespace std;#define rep(i,n) for(int i=0;i<(int)(n);i++)const int INF10=1000000001,ID_MAX=20;const long mod=(1e9)+7;const long long INF18=100000000000000001;struct edge{int to;long cost;};void sort2array(double *a,long *b,long n){for(int i=0;i<n;i++){b[i]=i;}sort(b,b+n,[a](long i,long j)->bool {return a[i]<a[j];} );}//bを何回足せばaを超えるかint wtover(int a,int b){if(a%b>0)return (a/b)+1;else return a/b;}int bi_e[ID_MAX]={0};//2進数表示したときの最高桁int bi_max(long n){int m=0;for(m;(1<<m)<=n;m++);m=m-1;return m;}//bi_eに二進数表示したやつを代入void bi_exs(long n){memset(bi_e,0,sizeof(bi_e));if(n<(1<<ID_MAX)){for(int i=0;n>0;n=(n>>1),i++)bi_e[i]=n&1;}}//x^n mod m (nが負の時は0)long myPow(long x, long n, long m){if(n<0)return 0;if(n == 0)return 1;if(n % 2 == 0)return myPow(x * x % m, n / 2, m);elsereturn x * myPow(x, n - 1, m) % m;}int n,s,k;int main(){int i;//入力cin>>n>>s>>k;s=s-k*(n-1)*n/2;//処理if(s<0){cout<<0<<endl;return 0;}int dp[n+1][s+1];rep(i,s+1){dp[0][i]=0;}rep(i,n){dp[i+1][0]=1;}for(int i=1;i<=n;i++){for(int j=1;j<=s;j++){if(i>j){dp[i][j]=dp[i-1][j];}elsedp[i][j]=(dp[i][j-i]+dp[i-1][j])%mod;}}//出力cout<<dp[n][s]<<endl;}