秦始皇修路
时间限制:1秒 内存限制:256M
【题目描述】
秦朝有 \(N\) 个城市,需要修建一些道路使得任意两个城市之间都可以相互连通。道士徐福生称他可以用法术修路,不花钱,也不用劳动力,但只能修一条,因此需要慎重选择用法术修建哪一条路。
秦始皇不仅希望他道路总长度 \(B\) 尽量短(这样可以节省劳力),还希望法术连接的两个城市人口之和 \(A\) 尽量大,因此下令寻找一个使 \(A/B\) 最大的方案。你的任务就是找到这个方案。
注意,并不是任意两个城市都可以修建道路,这个信息在输入中给出。
【输入格式】
第一行为整数:\(N,M\),分别表示城市数量(编号为 \(1..N\))和可选修的道路数量;
接下来的一行包含 \(N\) 个整数,第 \(i\) 个整数表示城市 \(i\) 的人口数量。
接下来的 \(M\) 行,每行 3 个整数 \(x,y,cost\),表示城市 \(x\) 和城市 \(y\) 之间可以修建一条路,修这条路的花费为 \(cost\)。
【输出格式】
输出 \(A/B\) 的最大值,四舍五入保留 4 位小数。
【输入输出样例】
Input
6 8
8 7 3 5 9 6
1 2 4
2 3 3
2 4 2
1 5 1
5 6 3
3 5 4
6 2 5
1 6 4
Output
1.6667
【数据限制】
对于 \(100\%\) 的数据,\(1≤N≤100000\),\(N≤M≤300000\),每个城市的人口数量不超过:2 000 000 000。
【来源】
Mr.he