백준 14889 - 스타트와 링크 (파이썬)
Updated:
Answer
from itertools import combinations
n = int(input())
p = n // 2
s = [list(map(int, input().split())) for _ in range(n)]
people = [i for i in range(n)]
combi = list(combinations(people, p))
for i in range(n):
for j in range(i):
s[j][i] += s[i][j]
answer = 10000
for i in range(len(combi) // 2):
a = 0
for j in range(p):
for k in range(j + 1, p):
a += s[combi[i][j]][combi[i][k]]
b = 0
for j in range(p):
for k in range(j + 1, p):
b += s[combi[-i-1][j]][combi[-i-1][k]]
answer = min(answer, abs(a - b))
print(answer)