[DMOI-R2] 暗号

题目背景

> 有太多人太多事 夹在我们之间咆哮 > 杂讯太多讯号弱 就连风吹都要干扰 > 可是你不想 一直走在黑暗地下道 > 想吹风想自由 想要一起手牵手 去看海绕世界流浪 > ——《[暗号](https://www.bilibili.com/video/BV1p24y1f7zM)》 书接上回,每个军队都拿到了补给。但是要上战场,准备还不是很充分。JF 只有军队组成了一个集团军。才有可能形成一股强大的战斗力,才可以在军阀混战中取得胜利。

题目描述

已知 JF 有 $n$ 支军队,他们分别由 $n-1$ 条边连接。$1$ 号军队为根。每支军队有自己的或黑或白的 **“暗号”**,方便相互联系,以及他的战力值和士气值。**初始的时候,军队的士气值等于战力值**。我们从深度最深的军队开始改变士气值,对于当前的军队 $u$ 来说,在与他直接相连的军队且深度比 $u$ 深的军队中,如果有军队 $v$ 和他的暗号相同,$u$ 就可以联系上 $v$,然后 $u$ 的士气值 **就必须全部加上** $v$ 的子树内和 $v$ 颜色相同的点的战力值。(可以理解为,在 $u$ 的士气更新完毕时,$u$ 的子树的士气也更新完毕了。) 现在,你可以任意修改这些军队的暗号。要你求出所有**军队士气值的和的最大值**是多少。

输入输出格式

输入格式


第一行一个整数 $n$,如题所示。 第二行至第 $n$ 行每行有两个数,表示 $u$ 和 $v$ 之间有连边。 第 $n+1$ 行有 $n$ 个数,第 $i$ 个数表示第 $i$ 支军队一开始的战力值 $w_i$。

输出格式


一行一个整数,表示士气值之和的最大值。

输入输出样例

输入样例 #1

4
1 2 
1 3 
2 4 
6 -2 4 -7 

输出样例 #1

5

输入样例 #2

10
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
4 10
-3 9 4 -3 -2 5 -1 -3 -9 7

输出样例 #2

42

输入样例 #3

20
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
4 10
6 11
6 12
7 13
7 14
7 15
7 16
8 17
9 18
11 19
15 20
1 2 -1 -4 9 -3 -5 8 9 -10 -13 15 11 -6 17 -1 -19 20 -5 -9

输出样例 #3

266

输入样例 #4

6
1 2
1 3
1 4
2 5
2 6
-1 5 -3 -4 -5 -7

输出样例 #4

-10

说明

#### 【样例解释 #1】 我们将军队 $1,3,4$ 的暗号改为黑色,军队 $2$ 的暗号改成白色。这样,军队 $1,2,3,4$ 的最终士气值变为 $10,-2,4,-7$,总和为 $5$。可以证明不存在使得最终士气值和更大的方案。 #### 【样例解释 #2】 我们用 $1$ 表示黑色暗号,用 $2$ 表示白色暗号,那么 $n$ 支军队的暗号颜色分别如下:`1 1 1 1 2 1 2 2 2 1`。这样整支军队的士气值和为 $42$,可以证明不存在士气值和更大的方案。 #### 【数据范围与约定】 | 测试点编号 | $n \le$ | 特殊条件 | | :----------: | :----------: | :----------: | | $1\sim2$ | $20$ | 无 | | $3 \sim 6$ | $50$ | 无 | | $7 \sim 10$ | $300$ | $v=u+1$ | | $11\sim12$ | $300$ | $1 \le w_i \le 1000$ | | $13\sim14$ | $300$ | $u=1$ | | $15 \sim 20$ | $300$ | 无 | 对于 $100\%$ 的数据,$1 \le n \le 300$,$-1000 \le w_i \le 1000$。