5.周年纪念日
题目描述
给定一张有n个点和m条被破坏的道路的无向图,一开始我们需要修建道路满足n个点连通并且最大边权最小。输出最大边权以及所有边权和。其次,第i个点有Pi个居民,一个居民走1单位长度的路径会产生1的不高兴度,现在要求找一个点使得所有居民的不高兴度之和最小。输出这个点及所有人的不高兴度之和。
输入格式
第一行包含两个整数n和m,表示有n个城市,m条被破坏的道路;
接下来n行,每行包含一个整数Pi,表示城市i的居民人数;
接下来m行,每行三个整数Ai,Bi,Li,表示点Ai和点Bi之间有一条长度为Li的被破坏道路。
注意:两个城市之间可能会有多条道路。
输出格式
输出数据包含两行。
第一行两个整数C,T(用一个空格隔开),表示修建道路的最大边权和所有边权和;
第二行两个整数U,H(用一个空格隔开),表示晚会的地点(如果有多个地点满足条件,输出编号最小的那个城市)和相应地点所有人的不高兴度之和。
数据范围与提示
对于100%的数据,1≤n≤105,1≤m≤2×105,1≤L≤106,1≤Pi≤106,1≤Ai,Bi≤n,Ai=Bi。
输入数据保证只存在一种合法的修建方案,且所有运算结果在64位有符号整数以内。
样例
5 7
3
2
2
1
4
1 5 1
1 3 7
2 1 4
2 3 6
3 4 5
2 4 3
5 4 2
11 5
5 29
说明
合法的修建方案如下图(相邻城市之间的距离和每个城市的人数见样例):
依次选取每个点做晚会地址的不开心度之和如下表:
| 城市 |
1 |
2 |
3 |
4 |
5 |
| 1 |
0×3 |
6×3 |
8×3 |
3×3 |
1×3 |
| 2 |
6×2 |
0×2 |
8×2 |
3×2 |
5×2 |
| 3 |
8×2 |
2×8 |
0×2 |
5×2 |
7×2 |
| 4 |
3×1 |
1×3 |
5×1 |
0×1 |
2×1 |
| 5 |
1×4 |
5×4 |
7×4 |
2×4 |
0×4 |
| 不高兴度之和 |
35 |
57 |
73 |
33 |
29 |
因此需要选取城市5作为晚会地址,不高兴度之和为29。