T371047 树的重心

题目背景

给定一颗节点有权值的树,请你求出树的带权重心。 可能有多个重心,输出任意一个即可。 原题:[P1364医院设置](https://www.luogu.com.cn/problem/P1364) 快速读入可能导致错误。

题目描述

设有一棵多叉树,如图: ![](https://cdn.luogu.com.cn/upload/image_hosting/kawht13x.png) 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为 $1$。如上图中,若医院建在 $1$ 处,则距离和 $=4+12+2\times20+2\times40=136$;若医院建在 $3$ 处,则距离和 $=4\times2+13+20+40=81$。

输入格式

第一行一个整数 $n$,表示树的结点数。 第二行$n$个整数,第$i$个整数表示节点$i$的人口数量。 接下来$n-1$行,每行两个整数,描述一条树边。

输出格式

一个整数,表示最小距离和。

说明/提示

对于 $70\%$ 的数据,保证 $1 \leq n \leq 100$。 对于 $100\%$ 的数据,保证 $1 \leq n \leq 10^5$,$0 \leq u, v \leq n$,$1 \leq w \leq 100$。