아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

왕조

면접 대비

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

요약
루트가 있는 트리와 (v, k) 질의가 주어질 때, 정점 v의 k세대 아래 자손 수를 구한다.
난이도

보통10점 중 6점

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

문제

글렙은 역사를 아주 좋아한다. 특정 왕조의 역사를 조사하라고 하면 매우 기뻐한다. 글렙은 혈통의 순수함을 엄격히 따지기 때문에, 왕조를 분석할 때 창시자의 부계 혈통 직계 남성만 고려한다.

왕조를 역사적으로 분석하는 주요 방법 중 하나는 어떤 인물의 아들 수를 세는 것이다. 글렙은 연구에 혁명을 일으키려 한다. 단순히 아들 수가 아니라 손자, 증손자, 고손자 등의 수를 세려는 것이다. 그러나 왕조는 수십 세대에 걸쳐 이어질 수 있어 혈통 직계 후손의 총수가 매우 많아지므로, 글렙이 작업하기가 매우 어려워졌다. 지금이 21세기이니 글렙은 실력 있는 프로그래머에게 도움을 청하기로 했다.

왕조는 사람들의 집합이다. 그중 한 명을 왕조의 창시자라 하고, 나머지 왕조 구성원 UU에게는 왕조 구성원인 아버지 VV가 있다. 이때 UU는 VV의 아들이며, UU의 1세대 후손이다. 어떤 UU의 kk세대 후손의 아들 VV를 UU의 k+1k+1세대 후손이라 한다.

글렙은 어떤 왕조 구성원 VV에게 kk세대 후손이 몇 명 있는지 알고 싶어 한다. 물론 글렙의 질문은 하나가 아니다.

입력

입력 파일의 첫째 줄에는 글렙이 조사하는 왕조의 사람 수 nn이 하나 주어진다 (1≤n≤1051 \le n \le 10^5). 왕조 구성원은 1부터 nn까지 서로 다른 자연수로 번호가 매겨져 있다. 이어서 nn개의 수가 주어지는데, ii번째 수는 ii번째 왕조 구성원의 아버지 번호이거나, 그 구성원이 왕조의 창시자이면 −1-1이다.

왕조의 창시자는 정확히 한 명이며, 언급된 모든 왕조 구성원은 창시자의 후손임이 보장된다.

다음 줄에는 글렙이 궁금해하는 질문의 수 mm이 주어진다 (1≤m≤1051 \le m \le 10^5). 이어서 mm개의 줄이 주어지는데, 각 줄에는 두 정수 vv와 kk가 있다 (1≤v≤n1 \le v \le n, 1≤k≤1091 \le k \le 10^9). vv는 조사할 왕조 구성원의 번호이고 kk는 글렙이 궁금해하는 세대 수이다.

출력

각 질문마다 주어진 왕조 구성원의 해당 세대 후손 수를 한 줄에 하나씩 출력한다.

힌트

첫 번째 질문에서 1번 왕조 구성원에게는 2세대 후손이 3번과 5번, 두 명 있다.

예제1

  1. 예제 1

    입력
    5
    -1 1 2 1 4
    2
    1 2
    4 7
    
    예상 출력
    2
    0