30037 - Desert King
时间限制 : 1 秒
内存限制 : 128 MB
David 刚刚成为一个沙漠国家的国王。为了赢得人民的尊敬,他决定在他的国家内建造通水渠道,实现村村通水,和首都连通的村庄都将通水。作为国家的统治者和国家智慧的象征,他需要用一个最优的方式建造通水渠道。
经过几天的研究,他终于完成了计划。他希望通水渠道每千米的平均成本最小。也就是说,通水渠道的总成本与总长度的比例必须最小。他只需要修建将水通到所有村庄的必要通道就可以,这意味着将每个村庄连接到首都只有一种方式。
他的工程师调查了国家,并记录了每个村庄的位置。在两个村庄之间所有的通水渠道都是直线。由于任何两个村庄的海拔高度都不同,因此工程师得出的结论是,每两个村之间的通水渠道都需要安装一个垂直传输水的升降机,可以将水向上打,或让水流下来。通水渠道的长度是两村之间的水平距离,通水渠道的成本是升降高度。
要注意每个村庄所在的不同的海拔高度,而且不同的通水渠道不能共享一个升降机。通水渠道能安全地相交,不会出现三个村庄在同一条直线上的情况。
作为 David 国王的首席科学家和程序员,请你找出建造通水渠道的最佳解决方案。
输入
存在若干测试用例。每个测试用例开始的第一行给出整数 N(2 \le N \le 1000),表示村庄的数目。
接下来的 N 行每行给出 3 个整数 x、y 和 z(0 \le x, y < 10000,0 \le z < 10000000),其中 (x, y) 是村庄的位置,z 是村庄的海拔高度。
第一个村庄是首都。
以 N = 0 结束输入,程序不用处理。
输出
对于每个测试用例,输出一行,给出一个十进制数,表示通水渠道总成本与总长度的最小比值。这个数字精确到小数点后三位。
样例
输入
4 0 0 0 0 1 1 1 1 2 1 0 3 0
输出
1.000