結果

問題 No.462 6日知らずのコンピュータ
ユーザー butsurizuki
提出日時 2016-12-20 17:04:10
言語 C90
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 785 bytes
コンパイル時間 520 ms
コンパイル使用メモリ 22,016 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-12-14 11:27:13
合計ジャッジ時間 2,556 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 56 WA * 28
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function ‘main’:
main.c:18:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   18 |         scanf("%llu%llu",&n,&k);
      |         ^~~~~~~~~~~~~~~~~~~~~~~
main.c:20:31: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   20 |         for(i = 1;i <= k;i++){scanf("%llu",&a[i]);}
      |                               ^~~~~~~~~~~~~~~~~~~

ソースコード

diff #

#include <stdio.h>
#define X 1000000007

unsigned long long int kaijyo(unsigned long long int k){
	unsigned long long int r=1,i;
	for(i = 1;i <= k;i++){r*=i;r%=X;}
	return r;
}

unsigned long long int bitcount(unsigned long long int k){
	unsigned long long int r=0,i;
	for(i = 1;i <= 64;i++){if(k%2){r++;}k/=2;}
	return r;
}

int main(void) {
	unsigned long long int n,k,a[64],r=1,b[64],c,d=0,i,j;
	scanf("%llu%llu",&n,&k);
	if(k == 0){r = kaijyo(n);printf("%llu\n",r);return 0;}
	for(i = 1;i <= k;i++){scanf("%llu",&a[i]);}
	for(i = 1;i <= k;i++){b[i] = bitcount(a[i]);}
	for(i = 1;i <= n;i++){
		d++;
		c = 0;
		for(j = 1;j <= k;j++){
			if(b[j] == i){c++;}
		}
		if(c == 1){r*=kaijyo(d);d=0;}
		if(c >= 2){printf("0\n");return 0;}
	}
	r*=kaijyo(d);
	printf("%llu\n",r);
	return 0;
}
0