結果

問題 No.287 場合の数
ユーザー kroton
提出日時 2015-10-09 20:26:47
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 7 ms
コード長 577 Byte
コンパイル時間 232 ms
使用メモリ 5,192 KB
最終ジャッジ日時 2019-10-09 00:12:13

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
input.txt AC 6 ms
5,192 KB
sample1.txt AC 6 ms
5,192 KB
sample2.txt AC 6 ms
5,188 KB
sample3.txt AC 7 ms
5,188 KB
system_test1.txt AC 6 ms
5,188 KB
test1.txt AC 6 ms
5,188 KB
test2.txt AC 6 ms
5,188 KB
test3.txt AC 6 ms
5,188 KB
test4.txt AC 6 ms
5,188 KB
test5.txt AC 6 ms
5,188 KB
test6.txt AC 7 ms
5,192 KB
test7.txt AC 6 ms
5,192 KB
test8.txt AC 7 ms
5,188 KB
test9.txt AC 7 ms
5,192 KB
test10.txt AC 6 ms
5,188 KB
test11.txt AC 7 ms
5,188 KB
test12.txt AC 6 ms
5,192 KB
test13.txt AC 6 ms
5,188 KB
test14.txt AC 6 ms
5,188 KB
test15.txt AC 6 ms
5,188 KB
test16.txt AC 6 ms
5,192 KB
test17.txt AC 6 ms
5,188 KB
test18.txt AC 7 ms
5,188 KB
test19.txt AC 6 ms
5,192 KB
test20.txt AC 6 ms
5,188 KB
テストケース一括ダウンロード

ソースコード

diff #
#include <iostream>
using namespace std;
typedef long long ll;

ll C[700][700];

int main(){
	for(int n=0;n<700;n++){
		for(int k=0;k<=n;k++){
			if(k == 0 || k == n){
				C[n][k] = 1;
			} else {
				C[n][k] = C[n-1][k-1] + C[n-1][k];
			}
		}
	}

	int n;
	cin >> n;

	ll res = 0;
	for(int m=0;m<1<<8;m++){
		int tot = 6 * n;
		int cnt = 0;
		for(int i=0;i<8;i++){
			if((m >> i) & 1){
				tot -= n + 1;
				++cnt;
			}
		}
		if(tot < 0){
			continue;
		}
		if(cnt % 2 == 0){
			res += C[tot+7][7];
		} else {
			res -= C[tot+7][7];
		}
	}
	
	cout << res << endl;
	return 0;
}
0