题目描述
给定一棵有 个结点的树,结点编号为 到 ,其中 号结点是树根。每个结点 有一个整数点权 。
对于结点 ,它的子树由 本身以及所有以 为祖先的结点组成。请求出每个结点子树的点权之和(包含结点自身)。
输入格式
第一行一个整数 。
第二行 个整数 ,表示每个结点的点权。
接下来 行,每行两个整数 ,表示结点 与结点 之间有一条边。
数据保证给出的边构成一棵树。
输出格式
输出一行 个整数,第 个整数表示结点 的子树点权之和。
样例
样例 1
输入:
5
1 2 3 4 5
1 2
1 3
2 4
2 5
输出:
15 11 3 4 5
解释:结点 、 没有孩子,子树和分别为 、;结点 的子树是 ,和为 ;结点 的子树只有自己,和为 ;结点 的子树是全部结点,和为 。
样例 2
输入:
1
-7
输出:
-7
解释:只有一个结点,它的子树只包含自己,子树权值和就是它本身的点权。
数据范围
- ;
- ;
- 保证输入是一棵以 号结点为根的树;
- 每个子树的权值和的绝对值不超过 ,可用 64 位整数存放。