In [1]:
from itertools import permutations, combinations
def cal(li):
value = 0
for first,second in list(permutations(li,2)):
value = value + ability[first][second]
return value
def start_link(n,ability):
num_list = [i for i in range(n)]
one = list(set(combinations(num_list,n//2)))
two = list(permutations(one,2))
double = two[:]
for tdx in range(len(two)):
for num in two[tdx][0]:
if num in two[tdx][1]:
idx = double.index(two[tdx])
del double[idx]
break
final=[]
for teams in double:
result=[]
for team in teams:
result.append(cal(team))
final.append(abs(result[0]-result[1]))
return min(final)
n = int(input())
ability = []
for i in range(n):
ab = list(map(int,input().split()))
ability.append(ab)
start_link(n,ability)
Out[1]:
In [2]:
n = int(input())
ability = []
for i in range(n):
ab = list(map(int,input().split()))
ability.append(ab)
start_link(n,ability)
Out[2]:
In [3]:
n = int(input())
ability = []
for i in range(n):
ab = list(map(int,input().split()))
ability.append(ab)
start_link(n,ability)
Out[3]: