首页 > 试题广场 >

求和

[编程题]求和

已知有  个节点,有  条边,形成一个树的结构。

给定一个根节点 ,每个节点都有一个权值,节点i的权值为

给  个操作,操作有两种类型:

1 a x :表示将节点  的权值加上 

2 a :表示求  节点的子树上所有节点的和(包括  节点本身)


输入描述:

第一行给出三个正整数 ,表示树的节点数、操作次数、和这棵树的根节点.

第二行给出  个正整数,第  个正整数表示第  个节点的权值 

下面  行每行两个正整数 ,表示边的两个端点

接下来  行,每行给出一个操作



输出描述:

对于每个类型为 2 的操作,输出一行一个正整数,表示以  为根的子树的所有节点的权值和

示例1

输入

5 6 1
1 2 3 4 5
1 3
1 2
2 4
2 5
1 2 10
1 3 10
1 4 5
1 5 1
2 3
2 2

输出

13
27

备注:



建议使用 scanf 读入

这道题你会答吗?花几分钟告诉大家答案吧!