#57. 动态树的第 2 大值

动态树的第 2 大值

Description

一棵有NN 个节点的树,节点编号为11..NN

每个节点都有一个权值。

44种类型的操作: ①11 xx yy aa bb ,从树中删除一条边xx -yy ,然后添加一条新边aa -bb ;确保在添加新边后它仍然构成树;

22 aa bb ww ,将节点aabb 路径上所有节点包括aabb 的权值都修改为ww

33 aa bb dd ,将节点aabb 包括aabb 路径上所有节点的权值都增加dd

44 aa bb ,查询节点aabb 包括aabb 路径上的第22大权值,以及该权值在路径上出现的次数。

注意:这里是严格的第22大权值。{33, 55, 22, 55, 33}的严格第22大权值是33

Format

Input

11行包含一个整数TT TT 33,表示测试用例数。

每个测试用例的第11行都包含两个整数NNMM NNMM 10510^5 ,表示节点数和操作数;

22行包含NN 个整数,表示节点的权值;

接下来的NN -11行,每行都包含两个整数aabb ,表示在节点aabb 之间有一条边;

最后MM行描述操作。其中,11xx , yy , aa , bb NN ,|ww |10410^4 ,|dd |10410^4

Output

对每个测试用例,都先单行输出“CaseCase #xx:”(xx表示测试用例编号);

对每个查询操作都输出两个值,即第22大权值及其出现的次数。若路径上所有节点的权值都相同,则输出“ALLALL SAMESAME”。

Samples

2
3 2
1 1 2
1 2
1 3
4 1 2
4 2 3
7 7
5 3 2 1 7 3 6
1 2
1 3
3 4
3 5
4 6
4 7
4 2 6
3 4 5 -1
4 5 7
1 3 4 2 4
4 3 6
2 3 6 5
4 3 6
Case #1:
ALL SAME
1 2
Case #2:
3 2
1 1
3 2
ALL SAME