医院设置
时间限制:1秒 内存限制:256M
【题目描述】
阆中市管辖了 \(n\) 个乡镇(编号为 \(1..n\)),有 \(n-1\) 条公路把他们连接起来,每条公路的长度均为单位长度。其中第 \(i\) 个乡镇有人口数量为 \(W_i\)。
市政府打算在这 \(n\) 个乡镇中选择一个建立一所医院,使所有镇民到医院的所走路程总和最小。
例如,下图中有 5 个乡镇,每个圈表示一个乡镇,圈外的数字表示该乡镇编号,圈里的数字表示该乡镇的人口数量。
医院应建立在乡镇 3,所有人走的路程总和为:13*1+4*2+20*1+40*1=81
【输入格式】
第一行包含 1 个整数 \(n\),表示乡镇数量(编号为 \(1..n\))。
接下来 \(n-1\) 行,每行包含 2 个整数 \(u\) 和 \(v\),表示编号为 \(u\) 和编号为 \(v\) 的乡镇之间有一条公路相连。
最后 1 行,包含 \(n\) 个正整数,每两个正整数之间用一个空格隔开,其中第 \(i\) 个整数表示编号为 \(i\) 的乡镇的人口数量为 \(W_i\)。
【输出格式】
第一行包含若干整数,表示可以建立医院的乡镇编号(由小到大输出)。
第二行一个整数,表示所有人行程总和。
【输入输出样例】
Input
5
1 2
1 3
3 4
3 5
13 4 12 20 40
Output
3
81
【数据限制】
对于 \(30\%\) 的数据,\(1≤n≤100\),\(1≤M≤20\),\(1≤Q≤20\)
对于 \(60\%\) 的数据,\(1≤n≤2000\),\(1≤M≤4000\),\(1≤Q≤100\)
对于 \(100\%\) 的数据,\(1≤n≤200000\),\(1≤W_i≤10000\)
【来源】
Mr.he