結果
| 問題 |
No.58 イカサマなサイコロ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-11-15 19:25:39 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,054 bytes |
| コンパイル時間 | 713 ms |
| コンパイル使用メモリ | 23,040 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-26 01:52:53 |
| 合計ジャッジ時間 | 1,258 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 9 WA * 1 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:25:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
25 | scanf("%d%d",&n,&k);
| ^~~~~~~~~~~~~~~~~~~
ソースコード
#include<stdio.h>
void cpy(unsigned long long int f[],unsigned long long int t[]){
int i;
for(i=0;i<=63;i++){t[i] = f[i];}
}
void res(unsigned long long int d[]){
int i;
for(i=0;i<=63;i++){d[i]=0;}
}
unsigned long long int sixpow(int t){
int i;
unsigned long long int m=1;
for(i = 1;i <= t;i++){m*=6;}
return m;
}
int main(void){
unsigned long long int x[64]={0},y[64]={0},mx[64]={0},my[64]={0};
int n,k,i,j,a;
unsigned long long int t,wt;
double ans;
scanf("%d%d",&n,&k);
x[0]=1;
mx[0]=1;
for(i = 1;i <= k;i++){
res(y);
res(my);
for(j = 0;j <= 57;j++){
for(a = 4;a <= 6;a++){my[j+a]+=(mx[j] * 2);}
for(a = 1;a <= 6;a++){y[j+a]+=(x[j]);}
}
cpy(y,x);
cpy(my,mx);
}
for(i = k+1;i <= n;i++){
res(y);
res(my);
for(j = 0;j <= 57;j++){
for(a = 1;a <= 6;a++){my[j+a]+=(mx[j]);}
for(a = 1;a <= 6;a++){y[j+a]+=(x[j]);}
}
cpy(y,x);
cpy(my,mx);
}
t = sixpow(n);
t = t * t;
for(i=1;i<=62;i++){
for(j = i+1;j <= 63;j++){
wt+=(x[i]*mx[j]);
}
}
ans = wt;
ans/=t;
printf("%lf\n",ans);
return 0;
}