#2528. 动态树的最值

动态树的最值

Description

一棵树有NN 个节点,每个节点都有一个权值WWii ,有44种操作: ①11 xx yy ,在两个节点xxyy 之间添加一条新边。因此,在这种操作之后,两棵树将连接成一棵新树;

22 xx yy ,在树集合中找到包含节点xx 的树,并且使节点xx 成为该树的根,然后删除节点yy 与其父节点之间的边。在这种操作之后,一棵树将被分成两部分;

33 ww xx yy ,将xxyy 路径上所有节点的权值都增加ww ;④44 xx yy

Format

Input

包含多个测试用例。

每个测试用例的第11行都包含一个整数NN 11NN 33×10510^5

接下来的NN -11行,每行都包含两个整数xxyy,表示它们之间有一条边;

下一行包含NN 个整数,表示每个节点的权值都为WWii 00WWii 33000000

再下一行包含一个整数QQ 11QQ 33×10510^5

Output

对每个查询,都单行输出正确答案。若此查询是特殊操 作,则输出1-1

在每个测试用例之后都输出一个空行。

Samples

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

来源

HDU4010