스타트와 링크 2
면접 대비시간 제한2초메모리 제한512 MB
N명을 같은 수의 두 팀으로 나눠, 두 팀 능력치의 차이가 가장 작아지는 값을 구합니다.
문제
오늘은 회사에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고, 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다.
회사답게 사람마다 번호를 1부터 N까지 배정했고, 아래와 같은 능력치를 조사했다. 능력치 는 i번 사람과 j번 사람이 같은 팀에 속했을 때 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 를 합한 값이다. 는 와 다를 수 있으며, i번 사람과 j번 사람이 같은 팀에 속하면 팀에는 와 가 더해진다.
N=4이고 S가 아래와 같은 경우를 살펴보자.
예를 들어, 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 ≤ 100, N은 짝수)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 이다. 는 항상 0이고, 나머지 는 1보다 크거나 같고 100보다 작거나 같은 정수이다.
출력
첫째 줄에 스타트 팀과 링크 팀의 능력치 차이의 최솟값을 출력한다.