提出 #3969115


ソースコード 拡げる

N = int(input())
*A, = map(int, input().split())
C = [0]*4
for a in A:
    C[a] += 1

c1, c2, c3 = C[1:]
dp = [[[0]*(c1+c2+c3+1) for i in range(c2+c3+2)] for j in range(c3+2)]
for c in range(c3+1):
    M1 = c2+c3-c
    T = dp[c-1]
    S = dp[c]
    for b in range(M1+1):
        M2 = N-b-c
        X = S[b-1]; Y = S[b]
        Z = T[b+1]
        for a in range(M2==N, M2+1):
            r = N
            if a:
                r += a*Y[a-1]
            if b:
                r += b*X[a+1]
            if c:
                r += c*Z[a]
            Y[a] = r / (a+b+c)
print("%.10f" % dp[c3][c2][c1])

提出情報

提出日時
問題 J - Sushi
ユーザ yaketake08
言語 PyPy3 (2.4.0)
得点 100
コード長 622 Byte
結果 AC
実行時間 1278 ms
メモリ 499464 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 22
セット名 テストケース
All 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17
ケース名 結果 実行時間 メモリ
0_00 AC 174 ms 38256 KiB
0_01 AC 171 ms 38256 KiB
0_02 AC 175 ms 38256 KiB
0_03 AC 184 ms 38256 KiB
1_00 AC 172 ms 38256 KiB
1_01 AC 173 ms 38256 KiB
1_02 AC 175 ms 38256 KiB
1_03 AC 175 ms 38256 KiB
1_04 AC 196 ms 41968 KiB
1_05 AC 1278 ms 499464 KiB
1_06 AC 183 ms 39536 KiB
1_07 AC 450 ms 148104 KiB
1_08 AC 938 ms 324104 KiB
1_09 AC 477 ms 157576 KiB
1_10 AC 473 ms 155016 KiB
1_11 AC 758 ms 248968 KiB
1_12 AC 796 ms 291592 KiB
1_13 AC 1004 ms 374536 KiB
1_14 AC 1047 ms 396040 KiB
1_15 AC 1208 ms 483336 KiB
1_16 AC 1233 ms 483080 KiB
1_17 AC 1231 ms 483208 KiB