만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

스타트와 링크

시간 제한2초메모리 제한512 MB

요약
N명을 같은 크기의 두 팀으로 나눠 두 팀의 능력 합 차이를 최소로 만든다.
난이도

보통10점 중 6점

유형
완전 탐색, 백트래킹, 조합론
정답자
아직 제출이 없습니다

문제

오늘은 회사 동료들이 모여서 축구를 하기로 했다. 축구는 평일 오후에 하고 참석은 자유다. 축구를 하려고 모인 사람은 모두 N명이고, N은 짝수다. 이제 N/2명씩 스타트 팀과 링크 팀으로 사람을 나눠야 한다.

사람에게는 1번부터 N번까지 번호를 붙였고, 아래와 같은 능력치를 조사해 두었다. 능력치 SijS_{ij}는 i번 사람과 j번 사람이 같은 팀에 속했을 때 그 팀에 더해지는 능력치다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 SijS_{ij}를 더한 값이다. SijS_{ij}와 SjiS_{ji}는 서로 다를 수 있고, i번 사람과 j번 사람이 같은 팀에 속하면 팀에는 SijS_{ij}와 SjiS_{ji}가 모두 더해진다.

N이 4이고 S가 아래와 같은 경우를 보자.

i\j1234
1123
2456
3712
4345

1번과 2번이 스타트 팀, 3번과 4번이 링크 팀에 속하면 두 팀의 능력치는 아래와 같다.

  • 스타트 팀: S12+S21=1+4=5S_{12} + S_{21} = 1 + 4 = 5
  • 링크 팀: S34+S43=2+5=7S_{34} + S_{43} = 2 + 5 = 7

1번과 3번이 스타트 팀, 2번과 4번이 링크 팀에 속하면 두 팀의 능력치는 아래와 같다.

  • 스타트 팀: S13+S31=2+7=9S_{13} + S_{31} = 2 + 7 = 9
  • 링크 팀: S24+S42=6+4=10S_{24} + S_{42} = 6 + 4 = 10

축구를 재미있게 하려면 스타트 팀의 능력치와 링크 팀의 능력치의 차이를 가장 작게 만들어야 한다. 위 경우에는 1번과 4번이 스타트 팀, 2번과 3번이 링크 팀에 속할 때 스타트 팀의 능력치가 6, 링크 팀의 능력치가 6이 되어 차이가 0이고, 이 값이 최솟값이다.

입력

첫째 줄에 N이 주어진다. (4≤N≤204 \le N \le 20, N은 짝수)

둘째 줄부터 N개의 줄에 걸쳐 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번째 줄의 j번째 수가 SijS_{ij}다. SiiS_{ii}는 항상 0이고, 나머지 SijS_{ij}는 1보다 크거나 같고 100보다 작거나 같은 정수다.

출력

첫째 줄에 스타트 팀의 능력치와 링크 팀의 능력치의 차이의 최솟값을 출력한다.

힌트

두 번째 예제는 (1, 3, 6)과 (2, 4, 5)로 나누면 되고, 세 번째 예제는 (1, 2, 4, 5)와 (3, 6, 7, 8)로 나누면 된다.

예제3

  1. 예제 1

    입력
    4
    0 1 2 3
    4 0 5 6
    7 1 0 2
    3 4 5 0
    
    예상 출력
    0
    
  2. 예제 2

    입력
    6
    0 1 2 3 4 5
    1 0 2 3 4 5
    1 2 0 3 4 5
    1 2 3 0 4 5
    1 2 3 4 0 5
    1 2 3 4 5 0
    
    예상 출력
    2
    
  3. 예제 3

    입력
    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