結果
問題 | No.58 イカサマなサイコロ |
ユーザー | hogeover30 |
提出日時 | 2015-02-04 07:52:33 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 772 bytes |
コンパイル時間 | 652 ms |
コンパイル使用メモリ | 62,684 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-23 07:26:25 |
合計ジャッジ時間 | 1,211 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:11:41: warning: iteration 57 invokes undefined behavior [-Waggressive-loop-optimizations] 11 | for(int k=4;k<=6;++k) p1[i][j+k]+=p1[i-1][j]/3; | ~~~~~~~~~~^~~~~~~~~~~~~~ main.cpp:9:41: note: within this loop 9 | for(int i=1;i<=10;++i) for(int j=0;j<=60;++j) { | ~^~~~
ソースコード
#include <iostream> #include <iomanip> using namespace std; int main() { double p0[11][61], p1[11][61]; for(int i=0;i<11;++i) for(int j=0;j<61;++j) p0[i][j]=p1[i][j]=0; p0[0][0]=p1[0][0]=1; for(int i=1;i<=10;++i) for(int j=0;j<=60;++j) { for(int k=1;k<=6;++k) p0[i][j+k]+=p0[i-1][j]/6; for(int k=4;k<=6;++k) p1[i][j+k]+=p1[i-1][j]/3; } int n, k; while (cin>>n>>k) { double* jiro=p0[n]; double taro[61]; for(int i=0;i<=60;++i) { taro[i]=0; for(int j=0;j<=i;++j) taro[i]+=p0[n-k][j]*p1[k][i-j]; } double res=0; for(int i=1;i<=60;++i) for(int j=1;j<i;++j) res+=taro[i]*jiro[j]; cout<<setprecision(10)<<res<<endl; } }