#P0105. 变化

变化

题目描述

给你一个长度为 nn 的排列 p1,p2,,pnp_1, p_2, \ldots, p_n

在本题中,对于一个整数 aa 来说,它经过一次变化后将会变为 pap_a

接下来有 qq 次询问。

每次询问给你两个整数 x(1xn)x(1 \le x \le n)k(1k109)k(1 \le k \le 10^9),你需要回答出 xx 经过恰好 kk 次变化后将会变成的数字。

输入格式

第一行,一个整数 n(1n2×105)n(1 \le n \le 2 \times 10^5)

第二行,nn 个整数 p1,p2,,pnp_1, p_2, \ldots, p_n,两两之间以一个空格分隔。数据保证这是一个由整数 1n1 \sim n 构成的排列。

第三行,一个整数 q(1q2×105)q(1 \le q \le 2 \times 10^5),表示询问次数。

接下来 qq 行,每行包含两个整数 xxkk,以一个空格分隔,表示一次询问(1xn,1k1091 \le x \le n, 1 \le k \le 10^9)。

输出格式

对于每次询问的 xxkk,输出一行,包含一个整数,表示整数 xx 经过恰好 kk 次变化后变成的数字。

样例

6
2 4 3 1 6 5
5
1 1
2 2
4 3
3 1000000000
5 7
2
1
4
3
6

说明/提示

样例解释

  1. 121 \rightarrow 2
  2. 2412 \rightarrow 4 \rightarrow 1
  3. 41244 \rightarrow 1 \rightarrow 2 \rightarrow 4
  4. 因为 p3=3p_3 = 3,所以 33 经过多少次变化都是 33
  5. 565656565 \rightarrow 6 \rightarrow 5 \rightarrow 6 \rightarrow 5 \rightarrow 6 \rightarrow 5 \rightarrow 6

数据规模与约定

  • 对于 20%20\% 的数据,n,q20;k1000n, q \le 20; k \le 1000
  • 对于 50%50\% 的数据,n,q2000;k106n, q \le 2000; k \le 10^6
  • 对于 100%100\% 的数据,1n,q2×105;1k1091 \le n, q \le 2 \times 10^5; 1 \le k \le 10^9