만드는 중입니다

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

연수 대상 구간 선정

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

요약
회사 트리에서 각 요청마다 지정된 레벨의 부하 직원을 한 명 이상 포함하는 가장 짧은 번호 구간 [L, R]을 구합니다.
난이도

보통10점 중 7점

유형
트리, DFS, 이분 탐색, 투 포인터
정답자
아직 제출이 없습니다

연수 대상 구간 선정

이 회사의 직원들은 계층 구조를 이룹니다. 회사에는 nn명의 직원이 있으며, 1부터 nn까지 번호가 붙어 있습니다. 사장의 번호는 1입니다. 사장을 제외한 모든 직원에게는 직속 상사가 정확히 한 명 있습니다. 직원 ii의 직속 상사 번호는 pip_i이며, pi<ip_i < i입니다.

px=yp_x = y이면 직원 xx는 직원 yy의 레벨 1 부하 직원입니다. k>1k > 1일 때 pxp_x가 직원 yy의 레벨 k−1k-1 부하 직원이면, 직원 xx는 직원 yy의 레벨 kk 부하 직원입니다.

사장은 일부 직원을 연수 과정에 보내려 합니다. 두 수 LL과 RR을 고르고, L≤i≤RL \le i \le R을 만족하는 모든 직원 ii를 연수에 보냅니다.

LL과 RR을 고르기 전에 사장은 직원들로부터 mm개의 요청을 받았습니다. jj번째 요청은 두 수 uju_j, kjk_j로 주어지며, 직원 uju_j가 자신의 레벨 kjk_j 부하 직원 한 명을 연수에 보내 달라는 뜻입니다. 사장은 비용을 줄이기 위해 모든 요청을 만족하면서 연수에 가는 직원 수가 가장 적도록 LL과 RR을 고릅니다. 최적의 쌍이 여러 개이면 LL이 가장 작은 쌍을 택합니다.

입력

첫 줄에는 직원 수 nn이 주어집니다 (2≤n≤2000002 \le n \le 200000). 둘째 줄에는 n−1n-1개의 정수 p2,p3,…,pnp_2, p_3, \ldots, p_n (1≤pi<i1 \le p_i < i)이 주어지며, 각각 직원 ii의 직속 상사 번호입니다. 셋째 줄에는 요청 수 mm이 주어집니다. 이어지는 mm개의 줄에는 두 정수 uju_j, kjk_j (1≤uj<n1 \le u_j < n, 1≤kj<n1 \le k_j < n)가 주어집니다. 직원 uju_j에게는 레벨 kjk_j 부하 직원이 적어도 한 명 있음이 보장됩니다.

출력

두 정수 LL과 RR을 출력합니다. 최적의 쌍 (L,R)(L, R)이 여러 개이면 LL이 가장 작은 쌍을 출력합니다.

힌트

연수에 보내지는 직원은 3, 4, 5, 6번입니다. 직원 3은 사장 1의 레벨 1 부하 직원입니다. 직원 4는 사장 1의 레벨 2 부하 직원입니다. 직원 6은 직원 3의 레벨 1 부하 직원입니다.

예제1

  1. 예제 1

    입력
    7
    1 1 2 2 3 3
    3
    1 1
    3 1
    1 2
    
    예상 출력
    3 6