만드는 중입니다

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

심판의 날 프로토콜

시간 제한2초메모리 제한1024 MB

요약
시작 역과 터널 사용 횟수 k가 주어질 때, 최대 k개의 터널을 써서 도달할 수 있는 역 중 상점에 가장 가까운 역 번호를 구합니다.
난이도

보통10점 중 7점

유형
트리, 그래프, DFS, 이분 탐색
정답자
아직 제출이 없습니다

문제

프로토콜 '최후의 날'에 따라 살아남은 킹스맨 요원들은 어떤 와인 가게에 도착해야 한다. 요원들은 런던 지하철과 킹스맨의 비밀 터널을 이용할 수 있다. 지하철 노선망은 트리 구조이며, 정점은 역이고 간선은 역 사이의 구간이다. 역은 1부터 nn까지 번호가 매겨져 있고, 와인 가게는 1번 역에 있다. 모든 구간의 길이는 같다. 요원들은 감시를 받을 수 있고 지하철 이동으로 위치가 드러날 수 있으므로, 지하철은 가게에서 멀어지는 방향으로만 탄다. 즉, 가게에서 첫 번째 역까지의 간선 거리가 가게에서 두 번째 역까지의 거리보다 작을 때에만 인접한 역으로 이동할 수 있다. 각 킹스맨 터널은 두 역을 잇고, 한쪽 역에서 다른 쪽 역으로 가게에서 멀어지는 방향으로만 지하철을 타고 도달할 수 있다.

메를린은 두 번째 프로토콜 발동 시나리오를 검토하고 있다. 각 시나리오는 생존 요원이 처음 있는 역과 사용할 수 있는 킹스맨 터널의 최대 개수로 정해진다. 지하철은 몇 번이든 탈 수 있지만, 가게에서 멀어지는 방향으로만 이동할 수 있다. 메를린은 각 시나리오에서 요원들이 도달할 수 있는 역 중 가게에 가장 가까운 역을 알아야 한다. 남은 길은 요원들이 걸어가야 하기 때문이다.

입력

첫 줄에 역의 개수 nn이 주어진다 (2≤n≤200 0002 \le n \le 200\,000). 다음 n−1n - 1개 줄에는 지하철 구간으로 연결된 두 역의 번호 aia_i, bib_i가 주어진다 (1≤ai,bi≤n1 \le a_i, b_i \le n).

다음 줄에는 킹스맨 터널의 총개수 mm이 주어진다 (0≤m≤200 0000 \le m \le 200\,000). 다음 mm개 줄에는 터널로 연결된 두 역의 번호 uiu_i, viv_i가 주어진다 (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \neq v_i). viv_i에서 가게에서 멀어지는 방향으로만 이동하여 uiu_i에 도달할 수 있음이 보장된다.

다음 줄에는 시나리오의 개수 qq가 주어진다 (0≤q≤200 0000 \le q \le 200\,000). 다음 qq개 줄에는 요원들이 처음 있는 역의 번호 sis_i와 사용할 수 있는 킹스맨 터널의 최대 개수 kik_i가 주어진다 (1≤si≤n1 \le s_i \le n, 0≤ki≤m0 \le k_i \le m).

출력

각 시나리오에 대해, 요원들이 도달할 수 있는 역 중 가게에 가장 가까운 역의 번호를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

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