라면 배달하기
시간 제한1초메모리 제한1024 MB
트리에서 1번 방에서 출발해 K명의 친구에게 물을 배달할 때 마지막 배달 시각의 최솟값을, 모든 방 선택 경우에 대해 합산한다.
문제
서울과학고의 기숙사는 개의 방과 서로 다른 두 방을 연결하는 개의 복도로 이루어진 트리 형태로 표현할 수 있다. 모든 복도는 양방향으로 이동할 수 있고, 복도를 이용해 모든 방 사이를 이동할 수 있다. 하나의 복도를 통과하는 데 걸리는 시간은 이다.
민규는 명의 친구에게 컵라면을 끓여주려고 한다. 현재 민규는 번 방에 있으며, 민규를 포함한 모든 친구들은 서로 다른 방에 있다.
이를 위해 민규는 모든 친구들에게 뜨거운 물을 전달할 것이다. 뜨거운 물은 민규가 있는 번 방의 정수기에서만 얻을 수 있다. 또한, 민규는 매우 큰 보온병을 가지고 있어 물을 한 번만 받아도 모든 친구에게 줄 수 있는 충분한 양의 물을 받을 수 있다.
라면을 끓이는 행동은 위험한 행동이다. 사감 선생님께 걸리면 벌점을 받을 수 있기 때문이다. 민규는 위험을 최대한 줄이기 위해 가장 마지막으로 뜨거운 물을 배달한 시각이 최대한 빠른 방법으로 개의 방을 방문할 것이다.
민규가 개의 방을 방문하는 방법을 더 자세히 설명하면 다음과 같다.
- 민규는 물을 받기 전, 명의 친구들이 있는 방을 미리 확인한다.
- 민규는 시각 에 번 방에서 물을 받고 출발해, 가장 마지막으로 뜨거운 물을 배달하는 친구에게 걸리는 시간을 최소화하는 방법으로 개의 방을 방문할 것이다.
- 시간을 계산할 때는 민규가 복도를 이동하는 시간만 고려한다. 친구에게 물을 주는 시간이나 정수기에서 물을 뜨는 시간 등은 무시한다. 민규가 물을 다 주고 자신의 방으로 돌아가는 시간 역시 무시한다.
민규는 친구들이 있는 방을 확인하기 전에, 친구들에게 물을 배달하는 데 시간이 얼마나 걸릴지 예측하려고 한다. 명의 친구들이 있는 방을 고르는 가지 경우에 대해, 마지막으로 물을 배달하는 시각의 합을 구해 주자.
입력
첫째 줄에 방의 수 과 친구의 수 가 공백으로 구분되어 주어진다.
둘째 줄부터 번째 줄까지 번째 줄에는 번 복도가 연결하는 두 방의 번호 와 가 공백으로 구분되어 주어진다.
출력
친구들이 있는 방을 고르는 가지 경우에 대해 마지막으로 물을 배달하는 시각의 합을 으로 나눈 나머지를 출력하여라.
제한
- 입력으로 주어지는 서울과학고의 구조는 트리임이 보장된다.