G - Ancestor Query Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 400

問題文

N 頂点の根付き木が与えられます。頂点には 1 から N までの番号が振られており、根は頂点 1 で、頂点 i\,(2\leq i\leq N) の親は頂点 P_i です。

Q 個の質問が与えられるので答えてください。

i 番目の質問では整数 X_i, Y_i が与えられます。頂点 X_i は頂点 Y_i の祖先であり、二頂点間の距離を d とすると d\geq2 です。頂点 X_iY_i を結ぶパス上の頂点の番号を順に v_0,v_1,\ldots,v_d (ただし、v_0=X_i, v_d=Y_i)とするとき、v_1 を出力してください。

制約

  • 3\leq N\leq 2\cdot 10^5
  • 1\leq P_i\leq i-1\, (2\leq i\leq N)
  • 1\leq Q\leq 2\cdot 10^5
  • 1\leq X_i,Y_i\leq N\, (1\leq i\leq Q)
  • 頂点 X_i は頂点 Y_i の祖先 (1\leq i\leq Q)
  • 頂点 X_i と頂点 Y_i の距離は 2 以上

入力

入力は以下の形式で標準入力から与えられます。

N
P_2 P_3 \ldots P_N
Q
X_1 Y_1
X_2 Y_2
\vdots
X_Q Y_Q

出力

Q 行出力してください。

i\, (1\leq i\leq Q) 行目には、i 番目の質問に対する答えを出力してください。


入力例 1

7
1 1 3 3 5 5
3
1 7
3 6
3 7

出力例 1

3
5
5

1 番目のクエリにおいて、(v_0,v_1,v_2,v_3)=(1,3,5,7) であり、v_1=3 です。

2 番目のクエリにおいて、(v_0,v_1,v_2)=(3,5,6) であり、v_1=5 です。

3 番目のクエリにおいて、(v_0,v_1,v_2)=(3,5,7) であり、v_1=5 です。


入力例 2

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

出力例 2

2
3
4
4
2

入力例 3

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

出力例 3

3
2
4