정기 모임
시간 제한2초메모리 제한512 MB
가중치가 있는 트리에서 각 질의마다 번호 S부터 E까지의 정점에 사는 사람들이 모일 때, 가장 먼 사람까지의 거리가 가장 작아지는 값을 구합니다.
문제
정점이 개인 트리가 주어진다. 각 정점은 1번부터 번까지 차례대로 번호가 부여되어 있다. 번째 간선은 번 정점과 번 정점을 연결하며, 가중치는 다 ().
트리에서 두 정점 사이의 거리는 그 둘을 잇는 최단경로 상의 간선 가중치의 최댓값으로 정의한다. 같은 두 정점 사이의 거리는 0으로 정의한다.
트리에 사는 사람들이 개의 모임을 개최하려 한다. 번째 모임에는 번호가 이상 이하인 정점에 사는 사람들이 참석한다. 각 모임은 트리 위의 어떤 정점 에서 열린다. 참석자 모두가 까지 이동하는 거리의 최댓값이 가장 작아지도록 를 정한다.
이때 이 최솟값을 구하는 프로그램을 작성하시오.
입력
첫 번째 줄에 정점의 개수 과 모임의 횟수 가 공백으로 구분되어 주어진다. 두 번째 줄부터 개의 줄에 간선 정보가 주어진다. 번째 줄에는 자연수 , , 가 공백으로 구분되어 주어지며, 이는 번 정점과 번 정점을 잇는 가중치 의 간선이 있다는 뜻이다. 번째 줄부터 개의 줄에 모임 정보가 주어진다. 번째 줄에는 번째 모임을 나타내는 자연수 와 가 공백으로 구분되어 주어진다.
출력
첫 번째 줄부터 개의 줄에 걸쳐 답을 차례대로 출력한다. 번째 줄에는 번째 모임의 답을 출력한다.
제한
- ()
- ()
- ()
- ()
- ()