아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

한쪽으로 치우친 팀 구성

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

요약
n명의 선수를 같은 크기의 두 팀으로 나눌 때 두 팀의 상호작용 점수 합의 차이를 최대로 만든다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디, 조합론, 수학
정답자
아직 제출이 없습니다

문제

동료 Sergey와 함께, 당신은 작은 회사의 동료들을 위한 흥미진진한 당구와 포켓볼 대회를 준비하고 있다. 그러나 두 사람 사이의 의사소통은 원활하지 않았다. 당신과 Sergey가 같은 생각을 하는지 확신할 수 없지만, 당신이 보기에는 이 대회가 팀워크를 다질 좋은 기회다. 실제 상금은 의미가 없지만, 팀 결속이라는 면에서 얻을 것이 많을 수 있다. 당신은 결과를 최대화하고 싶다.

팀 관리에 관한 의사과학 서적을 읽기 시작하고, 조사 끝에 팀 결속에 좋은 두 가지 방법이 있다는 결론을 내린다. 사람들은 압도적인 승리 후에도, 참담한 패배 후에도 서로 더 가깝게 느낀다. 여기서 좋은 아이디어가 떠오른다. 동료들을 실력 차이가 최대한 큰 두 그룹으로 나누면 두 팀 모두 결속력이 향상된다! 따라서 팀을 최대한 불균형하게 만드는 것이 최적이라고 생각한다. 다만 두 팀의 크기는 같아야 한다.

약간의 고민 끝에 팀의 강도를 나타내는 좋은 모델을 떠올린다. 팀의 강도는 주로 두 선수가 얼마나 잘 어울려 플레이하는지, 서로를 격려하고 상대의 약점을 보완해 주는지에 달려 있다고 본다. 두 선수 ii와 jj가 같은 팀에 있으면 팀 점수가 정수 ci,jc_{i,j}만큼 증가한다. 따라서 팀의 총점은 팀에 속한 모든 비순서쌍 (i,j)(i, j)에 대한 ci,jc_{i,j}의 합과 같다.

입력

입력은 다음과 같다.

  • 짝수 정수 nn (2≤n≤10002\leq n\leq 1000)이 있는 한 줄. 이는 전체 선수 수다.
  • nn개의 줄. ii번째 줄에는 nn개의 정수 ci,1,ci,2,…,ci,nc_{i,1}, c_{i,2}, \dots, c_{i, n}이 있다 (−106≤ci,j≤106-10^6 \leq c_{i,j} \leq 10^6). 모든 ii와 jj에 대해 ci,i=0c_{i,i} = 0이고 ci,j=cj,ic_{i,j} = c_{j,i}임이 보장된다.

출력

크기가 같은 두 팀 사이의 강도 차이로 가능한 최댓값을 출력한다.

예제2

  1. 예제 1

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

    입력
    4
    0 1 2 2
    1 0 8 -3
    2 8 0 5
    2 -3 5 0
    
    예상 출력
    6