Submission #24215199
Source Code Expand
def init(i):
return X[i]
def merge(s, x, y):
return max(s, x + y)
def fin(i, s):
return s
n = int(input())
A = [[int(a) for a in input().split()] for _ in range(n)]
X = [0] * (1 << n)
for i in range(1, 1 << n):
L = []
for j in range(n):
if i >> j & 1:
L.append(j)
s = 0
for j, a in enumerate(L):
for k in range(j):
b = L[k]
s += A[a][b]
X[i] = s
Y = [0] * (1 << n)
for i in range(1, 1 << n):
j = (i - 1) & i
s = init(i)
while j:
s = merge(s, X[i^j], Y[j])
j = (j - 1) & i
Y[i] = fin(i, s)
print(Y[-1])
Submission Info
| Submission Time | |
|---|---|
| Task | U - Grouping |
| User | Kiri8128 |
| Language | PyPy3 (7.3.0) |
| Score | 100 |
| Code Size | 665 Byte |
| Status | AC |
| Exec Time | 444 ms |
| Memory | 69912 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 | 62 ms | 61824 KiB |
| 0_01 | AC | 51 ms | 62068 KiB |
| 0_02 | AC | 50 ms | 62208 KiB |
| 0_03 | AC | 224 ms | 69808 KiB |
| 1_00 | AC | 51 ms | 62072 KiB |
| 1_01 | AC | 218 ms | 69780 KiB |
| 1_02 | AC | 216 ms | 69892 KiB |
| 1_03 | AC | 216 ms | 69576 KiB |
| 1_04 | AC | 222 ms | 69856 KiB |
| 1_05 | AC | 224 ms | 69832 KiB |
| 1_06 | AC | 223 ms | 69704 KiB |
| 1_07 | AC | 226 ms | 69468 KiB |
| 1_08 | AC | 223 ms | 69544 KiB |
| 1_09 | AC | 222 ms | 69552 KiB |
| 1_10 | AC | 221 ms | 69568 KiB |
| 1_11 | AC | 221 ms | 69792 KiB |
| 1_12 | AC | 444 ms | 69840 KiB |
| 1_13 | AC | 224 ms | 69792 KiB |
| 1_14 | AC | 223 ms | 69360 KiB |
| 1_15 | AC | 439 ms | 69580 KiB |
| 1_16 | AC | 223 ms | 69792 KiB |
| 1_17 | AC | 222 ms | 69372 KiB |
| 1_18 | AC | 439 ms | 69860 KiB |
| 1_19 | AC | 224 ms | 69912 KiB |