In [1]:
import itertools
n = int(input())
s = [list(map(int,input().split()))for i in range(n)]

def ability(n,s):
    minus = []
    s1 = []
    s2 = []
    numbers = {i for i in range(n)} 
    combinated = list(itertools.combinations(numbers,int(n/2)))

    for i in combinated:
        team2 = list(numbers-{*i})
        team1 = list({*i})
        permutated1 = list(itertools.combinations(team1,2))
        permutated2 = list(itertools.combinations(team2,2))
        semis1 = []
        semis2 = []

        for k in range(len(permutated1)) :
            semis1.append(s[permutated1[k][0]][permutated1[k][1]] + s[permutated1[k][1]][permutated1[k][0]])
            semis2.append(s[permutated2[k][0]][permutated2[k][1]] + s[permutated2[k][1]][permutated2[k][0]])
        s1.append(sum(semis1))
        s2.append(sum(semis2))
    
    for i in range(len(s1)):
        minus.append(abs(s1[i]-s2[i]))
        
    return min(minus)
print(ability(n,s))


8
0 5 4 5 4 5 4 5
4 0 5 1 2 3 4 5
9 8 0 1 2 3 1 2
9 9 9 0 9 9 9 9
1 1 1 1 0 1 1 1
8 7 6 5 4 0 3 2
9 1 9 1 9 1 0 9
6 5 4 3 2 1 9 0
1