Submission #3779499
Source Code Expand
k = int(input()) n = 2**k r = [int(input()) for i in range(2**k)] def winrate(a,b): return 1/(1+pow(10, (r[b]-r[a])/400)) def vs_range(ind, round): offset = (2**round)*(ind//(2**round)) #print(offset) if ind >= offset+2**(round-1): return range(offset,offset+2**(round-1)) else: return range(offset+2**(round-1),offset+2**round) dp = [[0]*n for i in range(k+1)] dp[0] = [1]*n for round in range(1, k+1): for i in range(n): tmp = 0 for j in vs_range(i,round): tmp += winrate(i, j)*dp[round-1][j] tmp *= dp[round-1][i] dp[round][i] = tmp for i in dp[-1]: print("{:.9f}".format(i))
Submission Info
Submission Time | |
---|---|
Task | C - トーナメント |
User | tomboftime |
Language | Python (3.4.3) |
Score | 4 |
Code Size | 692 Byte |
Status | AC |
Exec Time | 963 ms |
Memory | 3572 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 4 / 4 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00, 01, 02, 03, 90, 91 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00 | AC | 928 ms | 3572 KB |
01 | AC | 963 ms | 3572 KB |
02 | AC | 752 ms | 3572 KB |
03 | AC | 937 ms | 3572 KB |
90 | AC | 18 ms | 3064 KB |
91 | AC | 18 ms | 3064 KB |