結果
問題 | No.425 ジャンケンの必勝法 |
ユーザー |
![]() |
提出日時 | 2017-04-24 15:31:38 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 13 ms / 2,000 ms |
コード長 | 491 bytes |
コンパイル時間 | 489 ms |
コンパイル使用メモリ | 21,760 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-13 11:52:32 |
合計ジャッジ時間 | 1,328 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 18 |
コンパイルメッセージ
main.c: In function ‘run’: main.c:18:3: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 18 | scanf("%d%d",&p,&q); | ^~~~~~~~~~~~~~~~~~~
ソースコード
#include<stdio.h>double calc(int depth,int p,int q){if(depth>=20){return 0.5;}if(p<=0){return 1.0/3.0+calc(depth+1,q,q)/3.0;} else if(p>=100){return 1.0/2.0+calc(depth+1,100-q,q)/2.0;}return (1.0/2.0+calc(depth+1,p-q,q)/2.0)*p/100.0+(1.0/3.0+calc(depth+1,p+q,q)/3.0)*(100-p)/100.0;}void run(void){int p,q;scanf("%d%d",&p,&q);double ans=1.0/3.0+calc(0,p,q)/3.0;printf("%.6lf\n",ans);return;}int main(void){run();return 0;}