結果

問題 No.389 ロジックパズルの組み合わせ
ユーザー LogicR_piman
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;
}
0