P1076

消防站

消防站

某座城市有 NN 个区域,编号为 11 到 NN。这些区域之间由 N−1N-1 条道路相连,且任意两个区域之间均存在路径。

每个区域 ii 都有一个正整数权值 W(i)W(i)。记 d(u,v)d(u,v) 为区域 uu 与区域 vv 之间唯一路径所包含的边数。若 u=vu=v,则 d(u,v)=0d(u,v)=0。

现在需要选择两个不同的区域建立消防站。对于两个不同的区域 xx 和 yy,定义:

S(x,y)=∑i=1NW(i)min⁡{d(i,x),d(i,y)}.S(x,y)=\sum_{i=1}^{N}W(i)\min\{d(i,x),d(i,y)\}.

每个区域均由距离它较近的消防站提供服务。请选择区域 xx 和 yy,使得 S(x,y)S(x,y) 最小。

输入格式

输入共 N+1N+1 行。

第一行包含一个正整数 NN,表示区域数量。

接下来 N−1N-1 行,每行包含两个整数 uu、vv,表示区域 uu 与区域 vv 之间有一条道路。

最后一行包含 NN 个正整数,其中第 ii 个正整数表示区域 ii 的权值 W(i)W(i)。

输出格式

输出一个非负整数,表示 S(x,y)S(x,y) 的最小值。

样例输入

5

1 2

1 3

3 4

3 5

5 7 6 5 4

样例输出

14

样例解释

选择区域 22 和区域 33 建立消防站,此时 S(2,3)=14S(2,3)=14。

数据范围

  • 记 HH 为距离区域 11 最远的结点与区域 11 之间的距离,即 H=max⁡1≤u≤Nd(1,u)H=\max\limits_{1\le u\le N}d(1,u);
  • 对于 30%30\% 的数据,满足 2≤N≤3002\le N\le 300;
  • 对于其余 70%70\% 的数据,满足 2≤N≤5×1042\le N\le 5\times 10^4、H≤70H\le 70、W(i)≤100W(i)\le 100。

来源与许可

本题题面与测试数据整理自 BZOJ。

样例 1

输入

5

1 2

1 3

3 4

3 5

5 7 6 5 4

输出

14