atcoder#ABC239E. [ABC239E] Subtree K-th Max

[ABC239E] Subtree K-th Max

配点 : 500500

問題文

NN 頂点の根付き木があります。頂点には 11 から NN の番号がついており、根は頂点 11 です。 ii 番目の辺は頂点 AiA_iBiB_i を結んでいます。 頂点 ii には整数 XiX_i が書かれています。

QQ 個のクエリが与えられます。ii 番目のクエリでは整数の組 (Vi,Ki)(V_i,K_i) が与えられるので、次の問題に答えてください。

  • 問題:頂点 ViV_i の部分木に含まれる頂点に書かれた整数のうち、大きい方から KiK_i 番目の値を求めよ

制約

  • 2N1052 \leq N \leq 10^5
  • 0Xi1090\leq X_i\leq 10^9
  • 1Ai,BiN1\leq A_i,B_i\leq N
  • 1Q1051\leq Q \leq 10^5
  • 1ViN1\leq V_i\leq N
  • 1Ki201\leq K_i\leq 20
  • 与えられるグラフは木である
  • 頂点 ViV_i の部分木は頂点を KiK_i 個以上持つ
  • 入力に含まれる値は全て整数である

入力

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

NN QQ

X1X_1 \ldots XNX_N

A1A_1 B1B_1

\vdots

AN1A_{N-1} BN1B_{N-1}

V1V_1 K1K_1

\vdots

VQV_Q KQK_Q

出力

QQ 行出力せよ。ii 行目には ii 番目のクエリに対する答えを出力せよ。

5 2
1 2 3 4 5
1 4
2 1
2 5
3 2
1 2
2 1
4
5

この入力において与えられる木は下図のようなものです。

図

11 番目のクエリでは、頂点 11 の部分木に含まれる頂点 1,2,3,4,51,2,3,4,5 に書かれた数のうち大きい方から 22 番目である 44 を出力します。 22 番目のクエリでは、頂点 22 の部分木に含まれる頂点 2,3,52,3,5 に書かれた数のうち大きい方から 11 番目である 55 を出力します。

6 2
10 10 10 9 8 8
1 4
2 1
2 5
3 2
6 4
1 4
2 2
9
10
4 4
1 10 100 1000
1 2
2 3
3 4
1 4
2 3
3 2
4 1
1
10
100
1000