만드는 중입니다

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

MDSST 계산하기

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

요약
정점이 15개 이하인 완전 가중 그래프에서 모든 정점 쌍의 최단 거리 합이 가장 작은 신장 트리를 찾아 그 합을 출력한다.
난이도

어려움10점 중 8점

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

문제

이 문제에서는 모든 간선의 가중치가 양수인 가중 무방향 그래프를 다룬다.

D(G,i,j)D(G,i,j)를 그래프 GG에서 정점 ii와 정점 jj 사이 최단 경로의 길이로 정의하자.

정점 11부터 nn까지 번호가 붙은 nn개의 정점으로 이루어진 완전 가중 무방향 그래프 GG가 주어진다. GG의 신장 트리 중에서 MDSST(Minimum Distance Sum Spanning Tree)는 S(T)=∑_1≤i<j≤nD(T,i,j)S(T) = \sum\_{1 \leq i < j \leq n} D(T,i,j) 값을 최소로 하는 트리 TT이다. GG의 MDSST를 찾아 S(T)S(T)를 출력하시오.

입력

첫째 줄에는 정점의 수 nn이 주어진다 (2≤n≤152 \le n \le 15). 다음 n−1n-1개의 줄 중 ii번째 줄에는 n−in-i개의 정수가 공백으로 구분되어 주어진다. 이 줄의 jj번째 정수는 정점 ii와 정점 i+ji+j 사이 간선의 길이이다.

모든 길이는 11 이상 10910^9 이하이다.

출력

첫째 줄에 찾은 MDSST의 S(T)S(T) 값을 정수로 출력한다.

예제1

  1. 예제 1

    입력
    4
    3 2 1
    5 6
    7
    
    예상 출력
    18