Submission #5118274


Source Code Expand

K = int(input())
N = 1<<K
R = [int(input()) for _ in range(1<<K)]

def calc(A, B):
    ret = [[t[0], 0] for t in A] + [[t[0], 0] for t in B]
    for i, a in enumerate(A):
        for j, b in enumerate(B):
            ra = R[a[0]]
            rb = R[b[0]]
            wa = 1 / (1 + 10 ** ((rb-ra)/400))
            wb = 1 - wa
            ret[i][1] += wa * a[1] * b[1]
            ret[j+len(A)][1] += wb * a[1] * b[1]
    return ret

X = [[] for _ in range(2*N-1)]
for i in range(N):
    X[i+N-1] = [[i, 1]]
for k in range(K)[::-1]:
    for i in range(2**k-1, 2**(k+1) - 1):
        X[i] = calc(X[2*i+1], X[2*i+2])
for x in X[0]:
    print("{:.10f}".format(x[1]))

Submission Info

Submission Time
Task C - トーナメント
User Kiri8128
Language Python (3.4.3)
Score 4
Code Size 687 Byte
Status AC
Exec Time 654 ms
Memory 4844 KB

Judge Result

Set Name All
Score / Max Score 4 / 4
Status
AC × 6
Set Name Test Cases
All 00, 01, 02, 03, 90, 91
Case Name Status Exec Time Memory
00 AC 609 ms 4724 KB
01 AC 654 ms 4844 KB
02 AC 531 ms 4844 KB
03 AC 630 ms 4844 KB
90 AC 17 ms 3064 KB
91 AC 17 ms 3064 KB