만드는 중입니다

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

색 뒤집기

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

요약
모든 간선이 있는 완전 그래프에서 노드를 골라 연결된 간선의 색을 모두 뒤집을 때, 만들 수 있는 빨간 간선 신장 트리의 최소 페널티 합을 구합니다. 만들 수 없으면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
최소 신장 트리, 그래프, 비트 연산
정답자
아직 제출이 없습니다

문제

무방향 완전 그래프가 주어진다. 모든 노드 쌍은 빨간색 또는 검은색 간선으로 연결되어 있다. 각 간선에는 패널티라고 부르는 정수 값이 있다.

그래프에 연산을 반복 적용하여 빨간 간선만으로 이루어진 스패닝 트리를 만들어야 한다. 즉, 빨간 간선의 개수가 노드 수보다 정확히 1 작아야 하고, 모든 노드가 빨간 간선을 통해 직접 또는 간접으로 연결되어야 한다. 이런 트리를 두 개 이상 만들 수 있다면, 빨간 간선 패널티의 합이 가장 작은 트리를 고른다.

연산 한 번에 노드 하나를 고르고, 그 노드에 연결된 간선의 색을 모두 뒤집는다. 빨간 간선은 검은색이 되고, 검은 간선은 빨간색이 된다.

그림 F-1의 왼쪽 그래프는 첫 번째 데이터셋이다. 노드 3에 연결된 간선의 색을 모두 뒤집고, 이어서 노드 2에 연결된 간선의 색을 모두 뒤집으면 오른쪽 그래프처럼 빨간 간선만으로 이루어진 스패닝 트리가 된다.

입력

입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋은 다음 형식이다.

n
e1,2 e1,3 ... e1,n-1 e1,n
e2,3 e2,4 ... e2,n
...
en-1,n

정수 nn (2≤n≤3002 \le n \le 300)은 노드 수이며, 노드는 1부터 nn까지 번호가 매겨져 있다. 각 ei,ke_{i,k} (1≤∣ei,k∣≤1051 \le |e_{i,k}| \le 10^5)는 노드 ii와 노드 kk 사이 간선의 패널티와 처음 색을 나타낸다. 절댓값 ∣ei,k∣|e_{i,k}|가 패널티이다. ei,k>0e_{i,k} > 0이면 처음에 빨간색, ei,k<0e_{i,k} < 0이면 처음에 검은색이다.

입력의 끝은 0이 적힌 줄이다. 데이터셋은 50개를 넘지 않는다.

출력

각 데이터셋마다, 위 연산으로 만들 수 있는 빨간 스패닝 트리 중 패널티 합이 가장 작은 값을 출력한다. 빨간 스패닝 트리를 만들 수 없으면 -1을 출력한다.

예제1

  1. 예제 1

    입력
    4
    3 3 1
    2 6
    -4
    3
    1 -10
    100
    5
    -2 -2 -2 -2
    -1 -1 -1
    -1 -1
    1
    4
    -4 7 6
    2 3
    -1
    0
    
    예상 출력
    7
    11
    -1
    9