给一棵有根树,这棵树由编号为1...N的 N 个结点组成。根结点的编号为 R。每个结点都有一个权值,结点 i 的权值为 vi。 接下来有 M 组操作,操作分为三类:
1 a b x :表示将「结点 a 到结点 b 的简单路径」上所有结点的权值都增加 x; 2 a :表示求结点 a 的权值。 3 a :表示求 a 的子树上所有结点的权值之和。
第一行有三个整数 N,M 和 R。 第二行有 N 个整数,第 i 个整数表示 vi。 在接下来的 N-1 行中,每行两个整数,表示一条边。 在接下来的 M 行中,每行一组操作。
对于每组2 a操作,输出一个整数,表示结点 a 的权值。 对于每组3 a操作,输出一个整数,表示 a 的子树上所有结点的权值之和。
10 15 3 4 8 -2 -4 -7 -7 -9 5 2 5 3 9 3 4 4 5 4 8 8 7 3 6 8 2 9 10 2 1 2 5 1 4 7 3 1 7 2 6 1 6 7 -7 2 1 1 10 10 -9 2 4 1 2 9 -8 2 6 1 10 5 -2 1 4 4 6 1 6 1 3 1 1 10 2 1 9 2 0 2 7
-7 4 -8 -14 -7
10 17 3 5 1 -7 -9 -5 3 -7 -5 3 3 1 8 8 7 7 6 8 3 6 10 7 2 6 9 1 4 6 5 2 9 1 10 4 -2 2 8 1 1 10 -2 3 5 1 10 6 -3 3 1 1 6 5 9 2 8 1 4 5 1 2 10 1 2 5 6 1 2 6 0 1 2 7 -5 1 4 9 6 1 10 1 0 3 2
3 -7 -5 -10 -9 -4 2
对于所有的数据 1<=N,M<=10^6,1<=R<=N, -10^6<=vi,x<=10^6