結果
問題 | No.269 見栄っ張りの募金活動 |
ユーザー |
![]() |
提出日時 | 2015-08-22 00:07:12 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,730 bytes |
コンパイル時間 | 617 ms |
コンパイル使用メモリ | 83,152 KB |
実行使用メモリ | 25,632 KB |
最終ジャッジ日時 | 2024-07-18 12:24:30 |
合計ジャッジ時間 | 11,405 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 4 TLE * 1 -- * 17 |
ソースコード
#include <iostream>#include <algorithm>#include <functional>#include <string>#include <climits>#include <vector>#include <numeric>#include <complex>#include <map>#include <bitset>#include <stack>#include <queue>using namespace std;#define __int64 long long#define long __int64#define REP(i,a,b) for(int i=a;i<b;i++)#define rep(i,n) REP(i,0,n)const int Vecy[4] = {0,-1,0,1};const int Vecx[4] = {1,0,-1,0};const int modd = 1000000000 + 7;long comb2_data[20001][101] = {0};long comb2(int cnt, int n){// cout << "--" << cnt << "<" << n << "--" << endl;long result;long cnti;if(n == 2){// cout << "COMB2(" << cnt << "," << n << ") = " << (cnt + 2) / 2 << endl;return ((cnt + 2) / 2) % modd;}if(n == 1){// cout << "COMB2(" << cnt << "," << n << ") = " << 1 << endl;// cout << "!?" << endl;return cnt + 1;}else if(cnt == 0){// cout << "COMB2(" << cnt << "," << n << ") = " << 1 << endl;// cout << "cnt0" << endl;return 1;}else{if(comb2_data[cnt][n] != 0){//cout << "COMB2(" << cnt << "," << n << ") = " << comb2_data[cnt][n] << endl;return comb2_data[cnt][n];}result = 0;cnti = cnt;while(cnti >= 0){result += comb2(cnti, n-1);result %= modd;cnti -= n;}// cout << "COMB2(" << cnt << "," << n << ") = " << result << endl;comb2_data[cnt][n] = result;return result;}}int main(){int n,s,k;int ans = 0;int mind;int test;int cnt;cin >> n >> s >> k;if(k == 0){mind = 0;}else{mind = (n - 1) * n / 2 * k;}cnt = s - mind;// cout << mind << endl;// cout << cnt << endl;if(cnt < 0){cout << 0 << endl;return 0;}else{ans = 1;cout << comb2(cnt, n) << endl;}return 0;}