#2064. 3068. 小白树

3068. 小白树

#3068. 小白树

题目描述

背景:
小白家门前有一颗小白树,树上的每个节点u都有一个权值W(u)。
小白树的奇特之处在于树上有两个不同的中心点x和y。
这两个中心点满足F(x,y)=ΣMin(Dis(u,x),Dis(u,y))*W(u)最小,其中Dis表示两个节点的距离。
通俗地讲,就是对于每个节点u,求出G(u)表示它到x的距离和到y的距离中间小的那个乘以它的权值。
那么所有G(u)的和就是F(x,y)。
现在小白想让你找出这两个中心点。你只需要输出F(x,y)就可以了。

输入格式

第一行有一个整数N(2<=N<=500000)N表示小白树的节点个数。
之后N-1行每行有两个整数a和b表示a和b之间有一条边。
之后N行每行有一个整数,第i个整数表示W(i)(0<=W<=10000)。

输出格式

一个整数表示F(x,y)。

样例

样例输入

  5  

  1 2  

  1 3  

  3 4  

  3 5  

  5  

  7  

  6  

  5  

  4  

样例输出

  14

数据范围与提示

总共10个测试点

2<=n<=500000 0<=w<=10000