← Home
write a go solution for Description:
We are definitely not going to bother you with another generic story when Alice finds about an array or when Alice and Bob play some stupid game. This time you'll get a simple, plain text.

First, let us define several things. We define function F on the array A such that F(i,1)=A[i] and F(i,m)=A[F(i,m-1)] for m>1. In other words, value F(i,m) represents composition A[...A[i]] applied m times.

You are given an array of length N with non-negative integers. You are expected to give an answer on Q queries. Each query consists of two numbers – m and y. For each query determine how many x exist such that F(x,m)=y.

Input Format:
The first line contains one integer N (1<=N<=2*10^5) – the size of the array A. The next line contains N non-negative integers – the array A itself (1<=A_i<=N). The next line contains one integer Q (1<=Q<=10^5) – the number of queries. Each of the next Q lines contain two integers m and y (1<=m<=10^18,1<=y<=N).

Output Format:
Output exactly Q lines with a single integer in each that represent the solution. Output the solutions in the order the queries were asked in.

Note:
For the first query we can notice that F(3,10)=1,F(9,10)=1 and F(10,10)=1.

For the second query no x satisfies condition F(x,5)=7.

For the third query F(5,10)=6 holds.

For the fourth query F(3,1)=1.

For the fifth query no x satisfies condition F(x,10)=8.. Output only the code with no comments, explanation, or additional text.