結果

問題 No.1688 Veterinarian
ユーザー 👑 SPD_9X2SPD_9X2
提出日時 2021-09-24 22:26:01
言語 PyPy3
(7.3.13)
結果
AC  
実行時間 742 ms / 3,000 ms
コード長 1,184 bytes
コンパイル時間 291 ms
コンパイル使用メモリ 87,024 KB
実行使用メモリ 199,724 KB
最終ジャッジ日時 2023-09-18 21:43:18
合計ジャッジ時間 4,382 ms
ジャッジサーバーID
(参考情報)
judge12 / judge15
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 73 ms
71,468 KB
testcase_01 AC 75 ms
71,212 KB
testcase_02 AC 77 ms
71,480 KB
testcase_03 AC 74 ms
71,008 KB
testcase_04 AC 75 ms
71,240 KB
testcase_05 AC 76 ms
71,024 KB
testcase_06 AC 95 ms
76,828 KB
testcase_07 AC 122 ms
80,124 KB
testcase_08 AC 742 ms
199,724 KB
testcase_09 AC 688 ms
191,676 KB
testcase_10 AC 174 ms
86,032 KB
testcase_11 AC 186 ms
86,660 KB
testcase_12 AC 117 ms
78,280 KB
testcase_13 AC 121 ms
78,512 KB
testcase_14 AC 134 ms
78,956 KB
testcase_15 AC 155 ms
84,524 KB
testcase_16 AC 117 ms
77,916 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