結果

問題 No.1688 Veterinarian
ユーザー 👑 SPD_9X2SPD_9X2
提出日時 2021-09-24 22:26:01
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 624 ms / 3,000 ms
コード長 1,184 bytes
コンパイル時間 715 ms
コンパイル使用メモリ 82,828 KB
実行使用メモリ 199,004 KB
最終ジャッジ日時 2024-07-05 10:54:33
合計ジャッジ時間 3,446 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 35 ms
52,676 KB
testcase_01 AC 38 ms
54,712 KB
testcase_02 AC 37 ms
53,872 KB
testcase_03 AC 34 ms
53,084 KB
testcase_04 AC 34 ms
52,996 KB
testcase_05 AC 36 ms
53,200 KB
testcase_06 AC 56 ms
68,388 KB
testcase_07 AC 80 ms
78,992 KB
testcase_08 AC 602 ms
199,004 KB
testcase_09 AC 624 ms
190,636 KB
testcase_10 AC 124 ms
84,992 KB
testcase_11 AC 133 ms
85,540 KB
testcase_12 AC 75 ms
76,868 KB
testcase_13 AC 77 ms
77,108 KB
testcase_14 AC 87 ms
77,548 KB
testcase_15 AC 101 ms
80,172 KB
testcase_16 AC 74 ms
76,932 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

"""

50**4

"""


from sys import stdin
import sys

A,B,C,N = map(int,stdin.readline().split())

dp = [[[[0] * (C+1) for i in range(B+1)] for j in range(A+1)] for k in range(N+1)]

dp[0][A][B][C] = 1

for i in range(N):

    for a in range(A+1):
        for b in range(B+1):
            for c in range(C+1):

                s = (a+b+c)
                ndp = dp[i][a][b][c]

                if s * (s-1) == 0:
                    rem = 1
                else:
                    rem = 1 - ( a*(a-1) + b*(b-1) + c*(c-1) ) / (s*(s-1))

                dp[i+1][a][b][c] += ndp * rem

                if rem == 1:
                    continue

                if a != 0:
                    dp[i+1][a-1][b][c] += ndp * a * (a-1) / (s*(s-1))
                if b != 0:
                    dp[i+1][a][b-1][c] += ndp * b * (b-1) / (s*(s-1))
                if c != 0:
                    dp[i+1][a][b][c-1] += ndp * c * (c-1) / (s*(s-1))

aa = 0
bb = 0
cc = 0
for a in range(A+1):
    for b in range(B+1):
        for c in range(C+1):
            aa += dp[N][a][b][c] * (A-a)
            bb += dp[N][a][b][c] * (B-b)
            cc += dp[N][a][b][c] * (C-c)

print (aa,bb,cc)

#print (ans)
0