結果

問題 No.162 8020運動
ユーザー yaoshimaxyaoshimax
提出日時 2015-03-06 00:10:32
言語 PyPy2
(7.3.15)
結果
AC  
実行時間 294 ms / 5,000 ms
コード長 1,077 bytes
コンパイル時間 1,384 ms
コンパイル使用メモリ 76,544 KB
実行使用メモリ 78,464 KB
最終ジャッジ日時 2024-06-24 09:46:04
合計ジャッジ時間 8,738 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 103 ms
77,824 KB
testcase_01 AC 198 ms
78,080 KB
testcase_02 AC 243 ms
78,464 KB
testcase_03 AC 291 ms
78,208 KB
testcase_04 AC 288 ms
78,208 KB
testcase_05 AC 284 ms
78,464 KB
testcase_06 AC 290 ms
78,208 KB
testcase_07 AC 289 ms
78,208 KB
testcase_08 AC 289 ms
78,080 KB
testcase_09 AC 104 ms
77,952 KB
testcase_10 AC 249 ms
78,208 KB
testcase_11 AC 198 ms
77,824 KB
testcase_12 AC 156 ms
77,952 KB
testcase_13 AC 294 ms
78,336 KB
testcase_14 AC 127 ms
77,824 KB
testcase_15 AC 127 ms
78,208 KB
testcase_16 AC 173 ms
78,464 KB
testcase_17 AC 137 ms
77,952 KB
testcase_18 AC 291 ms
78,080 KB
testcase_19 AC 235 ms
78,080 KB
testcase_20 AC 251 ms
78,464 KB
testcase_21 AC 256 ms
77,952 KB
testcase_22 AC 245 ms
78,464 KB
testcase_23 AC 255 ms
78,080 KB
testcase_24 AC 248 ms
78,336 KB
testcase_25 AC 262 ms
78,080 KB
testcase_26 AC 105 ms
77,952 KB
testcase_27 AC 209 ms
77,952 KB
testcase_28 AC 293 ms
78,080 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

A=int(raw_input())
P0,P1,P2=map(int,raw_input().split())
dp=[[-1.0 for i in range(15)] for j in range(20)]

def rec(age, n):
    #print age-A,n
    if age == 80:
        return n
    elif n==0:
        return 0
    elif dp[age-A][n] >=0:
        return dp[age-A][n]
    elif n==1:
        dp[age-A][n]=rec(age+1,1)*(100-P0)/100.0
        return dp[age-A][n]
    ans = 0
    for m in range(1<<n):
        eLen = 0.0
        prob = 1.0
        nextN=0
        for l in range(n):
            if m&(1<<l)==0:
                if l == 0 or l == n-1:
                    prob *= P1/100.0
                else:
                    prob *= P2/100.0
                if nextN>0:
                    eLen += rec(age+1,nextN)
                    nextN=0
            else:
                if l==0 or l==n-1:
                    prob *= (100-P1)/100.0
                else:
                    prob *= (100-P2)/100.0
                nextN+=1
        if nextN>0:
            eLen += rec(age+1,nextN)
        ans += eLen*prob
    dp[age-A][n]=ans
    return dp[age-A][n]

print rec(A,14)*2




0