結果
問題 |
No.389 ロジックパズルの組み合わせ
|
ユーザー |
![]() |
提出日時 | 2016-10-22 02:30:47 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 919 bytes |
コンパイル時間 | 753 ms |
コンパイル使用メモリ | 55,540 KB |
実行使用メモリ | 16,832 KB |
最終ジャッジ日時 | 2024-11-23 16:56:52 |
合計ジャッジ時間 | 52,167 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 68 WA * 5 RE * 12 TLE * 14 |
ソースコード
#include<iostream> #include<string> using namespace std; int main() { long long i = 0, n = 0, a = 0, b = 0, sum = 0, now = 0, max, ans = 0, c = 0, d = 0, e = 0, deno = 1, nu = 1; string s; cin >> max; cin.ignore(); getline(cin, s); while (s[i] != '\0') { if (s[i] == ' ') { sum += now; now = 0; a++; } else { now = now * 10 + s[i] - 48; } i++; } sum += now; a++; b = max - sum - a + 1; n = a + b; //cout << n << " "<< a <<" "<< b << endl;) if (b == 0 || sum == 0) { cout << "1" << endl; } else if (b < 0) { cout << "NA" << endl; } else { if (a > b) { c = a; d = b; } else { c = b; d = a; } for (i = 0; i < d; i++) { nu *= (n - i); deno *= (i + 1); } nu %= 1000000007; deno %= 1000000007; e = nu % deno; while (e != 0) { nu += 1000000007; e = nu % deno; } ans = nu / deno; cout << ans << endl; } return 0; }