만드는 중입니다

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

교육 악몽

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

요약
방이 트리 구조로 연결된 건물에서 방 m에 들어가면 교실 위치를 알 수 있을 때, 시작 방 s에서 교실을 찾는 최악의 경우 최소 시간을 구합니다.
난이도

보통10점 중 6점

유형
트리, DFS, 그리디
정답자
아직 제출이 없습니다

문제

당신은 악몽을 꾸고 있습니다. 꿈속에서 당신은 교육 과정을 마치고 이제 다른 사람들을 가르치기 시작합니다. 오늘이 첫날입니다! 학교 건물에 (조금 늦게) 들어섰는데, 당연히 강의실이 몇 번 방인지 잊어버렸습니다.

건물에는 nn개의 방이 있으며 번호는 1,2,…,n1, 2, \ldots, n입니다. 일부 방 쌍은 통로로 연결되어 있습니다. 연결된 방 사이는 오갈 수 있으며, 한 번 이동할 때마다 정확히 1초가 걸립니다. 통로는 정확히 n−1n - 1개이고, 충분한 시간이 주어지면 모든 방에 도달할 수 있습니다. 즉, 방과 통로는 트리를 이룹니다.

당신은 방 ss에서 출발합니다. 올바른 방에 들어가면 바로 알아보고 탐색을 끝냅니다. 그래도 모든 방을 뒤지면 시간이 아주 오래 걸릴 수 있습니다. 다행히 방법이 하나 더 있습니다. 방 mm에는 모든 수업의 전체 시간표가 있습니다. 방 mm에 들어가면 수업이 어느 방에 있는지 즉시 알게 되고, 가장 짧은 경로로 곧바로 그곳에 갈 수 있습니다. 다만 방 mm에서는 인쇄, 팩스, 스캔, 복사 서비스를 제공하지 않으니 그런 것은 요청하지 마십시오.

최악의 경우에도 수업 방을 찾을 수 있도록 보장하는 전략에서, 필요한 최소 시간 tt를 구하십시오. 즉, 어떤 전략이 tt초 안에 올바른 방을 찾는다고 보장하는 최소의 tt입니다.

입력

첫 줄에는 테스트 케이스의 개수 zz가 주어집니다 (1≤z≤1091 \leq z \leq 10^9). 각 테스트 케이스의 첫 줄에는 정수 세 개 nn, ss, mm이 주어집니다 (1≤n≤200 0001 \leq n \leq 200\,000, 1≤s,m≤n1 \leq s, m \leq n). 이어서 n−1n - 1개의 줄이 주어지며, 각 줄에는 정수 a,ba, b가 주어집니다 (1≤a,b≤n1 \leq a, b \leq n, a≠ba \neq b). 이는 방 aa와 방 bb를 잇는 통로를 뜻합니다. 모든 방은 서로에게 도달할 수 있도록 보장됩니다.

수업은 방 ss에 있을 수도 있고 방 mm에 있을 수도 있습니다. 시작 방이 mm인 경우도 있습니다.

모든 테스트 케이스의 방 개수 합은 10710^7을 넘지 않습니다.

출력

각 테스트 케이스마다, 최선의 전략을 썼을 때 수업 교실에 도달하는 데 걸리는 총 시간(초)을 정수 하나로 출력합니다.

예제1

  1. 예제 1

    입력
    1
    4 2 3
    1 2
    1 3
    1 4
    
    예상 출력
    4