三部曲

Description

因为外来的入侵,国王决定在某些城市加派士兵。所有城市初始士兵数量为\(0\)。当城市𝑖被加派了\(k\)名士兵时。城市𝑖的所有子城市需要被加派\(k+1\)名士兵。这些子城市的所有子城市需要被加派\(k+2\)名士兵。以此类推。
当然,加派士兵的同时,国王也需要不断了解当前的情况。于是他随时可能询问以城市\(i\)为根的子树中的所有城市共被加派了多少士兵。
你现在是国王的军事大臣,你能回答出国王的每个询问么?

Format

Input

第一行,包含两个整数\(N,P\)代表城市数量以及国王的命令的数量。
第二行\(N-1\)个整数,表示\(2\)−\(N\)号每个节点的父亲节点。
接下来的\(P\)行,每行代表国王的一个命令,命令分两种:
\(A\) \(X\) \(K\) 在城市\(X\)加入\(K\)个士兵
\(Q\) \(X\) 询问以城市\(X\)为根的子树中所有士兵数量的和。

Output

对于每个Q,输出答案。

Sample 1

Input

7 10
1 1 2 2 5 5
Q 1
A 2 1
Q 1
Q 2
Q 5
A 5 0
Q 5
A 3 1
Q 1
Q 2

Output

0
11
11
8
10
14
13

Limitation

1s, 512MiB for each test case.

Hint

样例解释

无。

数据规模与约定

对于50%的数据,\(1 ≤ N ≤ 1000 \quad 1≤ P ≤ 300\)。
对于100%的数据,\(1 ≤ N ≤ 50000 \quad 1≤ P ≤ 100000 \quad 1≤ X ≤ N \quad 0 ≤ K ≤ 1000\)。

Source

CSP2019模拟题六

信息

ID
1029
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者