#4733. 最大子树和

最大子树和

题目描述

给定一棵包含 n 个节点的树(节点编号从 1n),每个节点有一个整数权值 w[i]
对于每个节点 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 5
2 2
12 5
4 4
5 5

数据范围

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