結果
| 問題 |
No.162 8020運動
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-03-06 00:30:58 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 849 bytes |
| コンパイル時間 | 432 ms |
| コンパイル使用メモリ | 55,224 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-06-24 09:49:29 |
| 合計ジャッジ時間 | 1,284 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 1 |
| other | AC * 12 WA * 14 |
ソースコード
#include <iostream>
#define REP(i,a,b) for(int i = (a); i < (b); i++)
#define rep(i,a) REP(i,0,a)
using namespace std;
int A;
double P0,P1,P2,U[20][14];
int main(void){
cin >> A;
cin >> P0 >> P1 >> P2;
P0 /= 100.0, P1 /= 100.0, P2 /= 100.0;
P0 = 1.0-P0, P1 = 1.0-P1, P2 = 1.0-P2;
rep(i,14) U[0][i] = 1.0;
REP(i,1,80-A+1) {
U[i][ 0] = (P1*U[i-1][ 1] + P0*(1.0-U[i-1][ 1])) * U[i-1] [0];
U[i][13] = (P1*U[i-1][12] + P0*(1.0-U[i-1][12])) * U[i-1][13];
REP(j, 1, 13) {
U[i][j] = (P2 * U[i-1][j-1]*U[i-1][j+1] +
P1 * (U[i-1][j-1]*(1.0-U[i-1][j+1]) + (1.0-U[i-1][j-1])*U[i-1][j+1]) +
P0 * (1.0-U[i-1][j-1])*(1.0-U[i-1][j+1])) * U[i-1][j];
}
}
double ans = 0.0;
rep(i,14) ans += 2*U[80-A][i];
printf("%.10f",ans);
}