N명을 두 팀으로 나눌 때 각 팀의 모든 순서쌍 능력 합의 차이를 최소로 만들고 그 최솟값을 출력한다.
보통6비트 연산완전 탐색배열조합론면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MBN명이 모여 축구를 하려고 한다. 이 사람들을 스타트 팀과 링크 팀으로 나눈다. 두 팀의 인원수는 같지 않아도 되지만, 각 팀에 적어도 한 명은 있어야 한다.
사람에게 1번부터 N번까지 번호를 붙이고 능력치 표 S를 조사했다. Sij는 i번 사람과 j번 사람이 같은 팀일 때 그 팀에 더해지는 능력치다. 팀의 능력치는 그 팀에 속한 서로 다른 두 사람의 모든 순서쌍에 대한 능력치를 더한 값이다. Sij와 Sji는 값이 다를 수 있고, i번 사람과 j번 사람이 같은 팀이면 Sij와 Sji가 모두 그 팀의 능력치에 더해진다.
N이 4이고 S가 다음과 같은 경우를 보자.
| Sij | j=1 | j=2 | j=3 | j=4 |
|---|---|---|---|---|
| i=1 | 0 | 1 | 2 | 3 |
| i=2 | 4 | 0 | 5 | 6 |
| i=3 | 7 | 1 | 0 | 2 |
| i=4 | 3 | 4 | 5 | 0 |
1번과 2번이 스타트 팀, 3번과 4번이 링크 팀이면 스타트 팀의 능력치는 S12+S21=1+4=5이고, 링크 팀의 능력치는 S34+S43=2+5=7이다. 1번과 3번이 스타트 팀, 2번과 4번이 링크 팀이면 스타트 팀은 S13+S31=2+7=9, 링크 팀은 S24+S42=6+4=10이다.
두 팀의 능력치 차이를 가장 작게 만드는 것이 목표다. 위 표에서는 1번과 4번이 스타트 팀, 2번과 3번이 링크 팀일 때 두 팀의 능력치가 모두 6이 되어 차이가 0이고, 이보다 작게 만들 수는 없다.
첫째 줄에 N이 주어진다. (4≤N≤20)
둘째 줄부터 N개의 줄에 걸쳐 S가 주어진다. 각 줄은 N개의 수로 이루어지고, i번째 줄의 j번째 수가 Sij다. Sii는 항상 0이고, 나머지 Sij는 1 이상 100 이하의 정수다.
첫째 줄에 스타트 팀과 링크 팀의 능력치 차이의 최솟값을 출력한다.