#4732. 子树和

子树和

题目描述

给定一棵包含 n 个节点的树(节点编号从 1n),每个节点有一个整数权值 v[i]
请你计算 每个节点的子树和
对于节点 u,它的子树包含 u 本身以及 u 的所有后代节点(即以 u 为根的子树中的所有节点)。
节点 u 的子树和定义为该子树中所有节点权值的总和。


输入描述

第一行一个整数 n,表示树的节点个数。
接下来 n-1 行,每行两个整数 u, v,表示树中有一条连接 uv 的无向边。
最后一行包含 n 个整数,第 i 个整数表示节点 i 的权值 w[i]


输出描述

输出一行,包含 n 个整数,第 i 个整数表示节点 i 的子树和。
数字之间用单个空格隔开。


输入样例

5
1 2
1 3
3 4
3 5
1 2 3 4 5

输出样例

15 2 12 4 5

数据范围

  • 1 ≤ n ≤ 1000
  • -10^4 ≤ w[i] ≤ 10^4
  • 保证给定的图是一棵树。