村村通[2]
时间限制:1秒 内存限制:256M
【问题描述】
市政府愿意拿出 \(F\) 元钱来实现“村村通”工程,即任意两个村庄之间都必须至少有一条通路。在研究了 \(N\) 个村庄分布的地图之后,规划部门得出结论:\(M\) 对村庄之间修建道路可以在较短时间内完成。
道路工程队接到市政府的邀请,并根据地图估算出了建造每条道路的成本 \(c\) 及用时 \(t\)。一对村庄之间可以有 1 条以上可修建道路,并且对于给定的测试数据将所有村庄连接起来是能够做到的。
现在工程队找到你,要求你编一个程序求出修建村村通工程能让获得的最大利润率。也就是使得剩余经费与所花时间的比值(赚钱速度)最大。
【输入格式】
第 1 行为三个整数 \(N,M\) 和 \(F\) ,它们的意义如题目描述。
第 2 行到第 \(M+1\) 行,每一行都包括 4 个用空格隔开的整数:\(i,j,c,t\) 分别表示可以修建一条道路的两端连接的村庄,以及修建该条道路的成本和时间。
【输出格式】
包含一个实数,表示剩余经费与所花时间的比值,保留 4 位小数.如果不可能以现有经费连接所有道路,输出0.0000。
【输入输出样例】
Input
5 100
2 20
3 20
4 20
5 20
3 23
Output
1.0625
【数据说明】
对于 \(100\%\) 的数据 \(1≤N≤400\),\(1≤M≤10000\),\(l≤c≤2×10^9\)。
【来源】
Mr.he