提出 #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 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| 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 |