#abc239e. [abc239_e]Subtree K-th Max

[abc239_e]Subtree K-th Max

题目描述

我们有一个根节点为1的树,有N个顶点。顶点编号从1到N。

第i条边连接了顶点AiA_iBiB_i

顶点i上有一个整数XiX_i

给定QQ个查询。对于第i个查询,给定一对整数(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个查询的回答。


示例输入1

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

示例输出1

4
5

这个输入中给出的树如下所示。

figure

对于第一个查询,以顶点11为根的子树中的顶点是1,2,3,41, 2, 3, 455,因此打印这些顶点上写的数中第22大的值44
对于第二个查询,以顶点22为根的子树中的顶点是2,3,52, 3, 5,因此打印这些顶点上写的数中第11大的值55


示例输入2

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

示例输出2

9
10

示例输入3

4 4
1 10 100 1000
1 2
2 3
3 4
1 4
2 3
3 2
4 1

示例输出3

1
10
100
1000