您正在打 galgame,然后突然家长进来了,于是您假装在写数据结构题:
给一个树,$n$ 个点,有点权,初始根是 $1$。
$m$ 个操作,每次操作:
第一行两个数表示 $n$,$m$。
第二行 $n$ 个数,表示每个点的点权 $a[i]$。
之后 $n−1$ 行,每行两个数 $x,y$,表示一条边。
之后 $m$ 行,每行为1 x或者2 x y。
1 x
2 x y
1 x,表示将根变成 $x$ 点。
2 x y,表示查询 $x$ 点的子树与 $y$ 点的子树。
对于每个询问,输出一个数表示答案。
5 5 1 2 3 4 5 1 2 1 3 3 4 3 5 2 4 5 2 1 5 2 3 5 1 5 2 4 5
0 1 1 1
$n \le 100000 , m \le 500000 , 1 \le a[i] \le 1000000000$