Submission #3978631
Source Code Expand
N = int(input())
A = [list(map(int, input().split())) for i in range(N)]
V = [0]*(1 << N)
for s in range(1 << N):
r = 0
for i, Ai in enumerate(A):
if not s & (1 << i):
continue
for j in range(i+1, N):
if not s & (1 << j):
continue
r += Ai[j]
V[s] = r
U = [-10**10]*(1 << N)
U[(1 << N) - 1] = 0
for state in range((1 << N)-1, 0, -1):
s = state
v = U[state]
while s:
s = (s - 1) & state
U[s] = max(U[s], v + V[state ^ s])
print(U[0])
Submission Info
| Submission Time | |
|---|---|
| Task | U - Grouping |
| User | yaketake08 |
| Language | PyPy3 (2.4.0) |
| Score | 100 |
| Code Size | 564 Byte |
| Status | AC |
| Exec Time | 881 ms |
| Memory | 45020 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| 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, 1_18, 1_19 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 163 ms | 38256 KiB |
| 0_01 | AC | 162 ms | 38256 KiB |
| 0_02 | AC | 169 ms | 38256 KiB |
| 0_03 | AC | 873 ms | 45020 KiB |
| 1_00 | AC | 164 ms | 38384 KiB |
| 1_01 | AC | 851 ms | 44380 KiB |
| 1_02 | AC | 529 ms | 43740 KiB |
| 1_03 | AC | 556 ms | 43996 KiB |
| 1_04 | AC | 569 ms | 44764 KiB |
| 1_05 | AC | 565 ms | 44764 KiB |
| 1_06 | AC | 577 ms | 44764 KiB |
| 1_07 | AC | 564 ms | 44764 KiB |
| 1_08 | AC | 562 ms | 44380 KiB |
| 1_09 | AC | 862 ms | 44764 KiB |
| 1_10 | AC | 573 ms | 44508 KiB |
| 1_11 | AC | 561 ms | 44508 KiB |
| 1_12 | AC | 863 ms | 44508 KiB |
| 1_13 | AC | 859 ms | 44764 KiB |
| 1_14 | AC | 881 ms | 44764 KiB |
| 1_15 | AC | 864 ms | 44764 KiB |
| 1_16 | AC | 563 ms | 44764 KiB |
| 1_17 | AC | 560 ms | 44508 KiB |
| 1_18 | AC | 867 ms | 44764 KiB |
| 1_19 | AC | 568 ms | 44764 KiB |