네트워크 파괴자

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

어느 대학교의 네트워크는 NN대의 컴퓨터로 이루어져 있다. 시스템 관리자들은 모든 노드 쌍 사이의 트래픽을 측정한 뒤, 두 부분 사이를 오가는 트래픽이 최소가 되도록 네트워크를 두 개의 하위 네트워크로 나누어 두었다.

대학교에서 퇴학당한 것에 앙심을 품은 학생 Vasya는 정반대의 일을 하려 한다. 그는 네트워크를 장악한 뒤, 두 하위 네트워크 사이의 트래픽이 최대가 되도록 컴퓨터들을 다시 배치하고 싶어 한다. 이 최악의 분할을 계산하는 문제를 스스로 풀 수 없어서, 그는 당신에게 도움을 청한다.

트래픽은 행렬 CC로 주어지며, CijC_{ij}는 노드 ii와 노드 jj 사이에 오가는 데이터의 양이다. 이 행렬은 대칭이고(Cij=CjiC_{ij} = C_{ji}) 자기 자신과의 트래픽은 없다(Cii=0C_{ii} = 0). NN개의 노드를 서로소인 두 집합 AABB로 나누어 다음 값을 최대로 만들어라.

iA,  jBCij.\sum_{i \in A,\; j \in B} C_{ij}.

입력

첫째 줄에 노드의 개수 NN이 주어진다 (2N202 \le N \le 20).

이어지는 NN개의 줄에는 각각 NN개의 정수가 공백으로 구분되어 주어진다. ii번째 줄의 jj번째 정수는 CijC_{ij}이다 (0Cij100000 \le C_{ij} \le 10000). 행렬은 대칭이며 대각 성분은 00이다.

출력

두 하위 네트워크 사이를 오가는 트래픽의 최댓값을 정수 하나로 출력한다.