結果
問題 |
No.462 6日知らずのコンピュータ
|
ユーザー |
|
提出日時 | 2016-12-20 17:09:29 |
言語 | C90 (gcc 12.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 950 bytes |
コンパイル時間 | 164 ms |
コンパイル使用メモリ | 22,144 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-12-14 11:27:15 |
合計ジャッジ時間 | 2,057 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 1 |
other | AC * 37 WA * 47 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:23:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 23 | scanf("%llu%llu",&n,&k); | ^~~~~~~~~~~~~~~~~~~~~~~ main.c:25:31: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 25 | for(i = 1;i <= k;i++){scanf("%llu",&a[i]);} | ^~~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h> #define X 1000000007 unsigned long long int pow2(unsigned long long int k){ unsigned long long int i,r=1; for(i = 1;i <= k;i++){r*=2;} } 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]);if(a[i] >= pow2(k+1)){printf("0\n");return 0;}} 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; }