술래잡기
시간 제한5초메모리 제한128 MB
트리에서 K에 있는 추격자가 매 순간 J 쪽으로 한 칸씩 다가올 때 회피자가 이동하거나 머물며 잡히는 시각을 최대한 늦춥니다.
문제
코르넬리아(Kornelia)가 좋아하는 놀이 중 하나는 친구 요아시아(Joasia)와 함께 하는 술래잡기입니다.
놀이가 벌어지는 마당은 개의 구역(1번부터 번까지 번호가 매겨져 있음)으로 이루어져 있고, 구역들은 개의 통로로 연결되어 있습니다. 또한 어떤 구역에서든 다른 모든 구역으로 갈 수 있습니다. 즉, 마당은 하나의 트리 구조를 이룹니다.
놀이가 시작될 때 코르넬리아는 번 구역에, 요아시아는 번 구역에 있으며, 코르넬리아의 목표는 요아시아를 잡는 것입니다. 두 사람의 이동 속도는 같아서, 통로 하나를 지나는 데 각각 정확히 한 순간이 걸립니다. 매 순간이 시작될 때 두 사람은 각자 현재 위치와 인접한(통로로 직접 연결된) 구역 중 하나를 골라 그곳으로 달려갑니다. 그 순간이 끝나면 두 사람은 새 구역에 도착해 있고, 두 사람이 같은 구역에 있게 될 때까지, 즉 코르넬리아가 요아시아를 잡을 때까지 이 과정이 반복됩니다.
두 사람은 다음 규칙에 따라 달려갈 구역을 고릅니다.
- 코르넬리아는 항상 요아시아가 현재 있는 구역으로 가는 경로 위의 인접 구역을 고릅니다. 즉, 언제나 요아시아 쪽으로 달려갑니다.
- 요아시아는 원하는 곳으로 달려가되, 코르넬리아가 현재 있는 구역으로는 절대 이동하지 않습니다. 요아시아는 그 순간에 아무 데도 가지 않기로, 즉 한 순간 동안 지금 있는 구역에 그대로 머무르기로 결정할 수도 있습니다.
헥토르(Hektor)는 자기 방 창문으로 이 놀이를 지켜보며, 코르넬리아가 요아시아를 잡는 데 최대 몇 순간이 걸릴지 궁금해합니다. 다시 말해, 요아시아가 추격 시간을 가장 길게 만드는 최적의 선택을 할 때 놀이가 얼마나 오래 이어지는지를 알고 싶어 합니다. 헥토르를 위해 이 문제를 풀어 줄 수 있나요?
입력
첫 번째 줄에는 테스트 세트의 개수를 나타내는 자연수 ()가 주어집니다. 이어서 각 테스트 세트가 차례로 주어집니다.
각 테스트 세트의 첫 번째 줄에는 공백 하나로 구분된 세 자연수 , , 가 주어집니다 (, , ). 그다음 개의 줄에 마당의 통로가 하나씩 주어집니다.
각 통로는 공백 하나로 구분된 두 자연수 와 ()로 주어지며, 이는 구역 와 구역 사이에 양방향 통로가 있음을 뜻합니다.
출력
각 테스트 세트마다 놀이가 지속되는 최대 시간(순간의 수)을 한 줄에 하나씩 출력합니다. 출력하는 답의 순서는 입력에 주어진 테스트 세트의 순서와 같아야 합니다.