파이몬의 나무
시간 제한4초메모리 제한1024 MB
시작 정점과 간선을 붙이는 순서를 골라 i번째 간선의 가중치를 a_i로 만들 때, 완성된 가중치 트리 지름의 최댓값을 구합니다.
문제
파이몬은 처음에 흰색인 정점 개로 이루어진 나무를 왼쪽 주머니에서 찾아 가지고 놀기로 한다. 정점이 개인 나무는 간선이 개인 연결된 무방향 그래프이다.
파이몬이 길이 인 정수 수열 을 준다. 먼저 나무에서 정점 하나를 골라 검은색으로 칠한다. 그다음 아래 연산을 번 수행한다.
번째 연산에서는 검은색 정점 와 간선으로 직접 연결된 흰색 정점 를 하나 고른다. 그 간선의 가중치를 로 정하고, 를 검은색으로 칠한다. 번의 연산이 끝나면 모든 간선에 가중치가 있는 나무가 남는다.
정점을 최적으로 고를 때, 가중치가 있는 나무 지름의 최댓값은 얼마인가? 나무의 지름은 가장 긴 단순 경로이고, 경로의 길이는 그 경로에 있는 간선 가중치의 합이다.
입력
입력은 여러 테스트 케이스로 이루어진다. 첫 줄에 테스트 케이스의 수 ()가 주어진다. 각 테스트 케이스는 다음과 같다.
첫 줄에 수열의 길이 ()이 주어진다.
둘째 줄에 정수 ()이 주어진다.
다음 개 줄의 번째 줄에는 두 정수 와 ()가 주어진다. 이는 정점 와 를 잇는 간선이 있다는 뜻이다.
인 테스트 케이스는 최대 10개라고 보장된다.
출력
각 테스트 케이스마다 가중치가 있는 나무 지름의 최댓값을 한 줄에 출력한다.
힌트
첫 번째 테스트 케이스에서는 순서로 정점을 고른다. 이렇게 만들어진 가중치 나무는 아래 그림과 같고, 가장 긴 단순 경로의 길이는 이다.
