#4721. 子树权值和最大值

子树权值和最大值

题目描述

给定一棵以 1 为根的无向树,每个节点有权值,权值可以是正数、0、负数。 一棵节点的子树定义:节点自身 + 它所有后代节点。 求所有子树中,子树内所有点权相加的最大值。

输入描述

第一行一个整数 nn,代表树上节点总数。 第二行 nn 个整数,第 ii 个数代表编号 ii 节点的权值。 接下来 n1n-1 行,每行两个整数 u,vu,v,代表树上双向边 uvu \leftrightarrow v

输出描述

输出所有子树权值和的最大值。

输入样例

5
-10 -1 5 -2 4
1 2
1 3
3 4
3 5

输出样例

7

样例解释: 1 号整树总和:101+52+4=4-10-1+5-2+4=-4 3 号子树总和:52+4=75-2+4=7 2 号:1-1,4 号:2-2,5 号:44

数据范围

1n10001 \le n \le 1000 每个节点权值满足 100w100-100 \le w \le 100