30037 - Desert King

通过次数

2

提交次数

4

时间限制 : 1 秒
内存限制 : 128 MB

David 刚刚成为一个沙漠国家的国王。为了赢得人民的尊敬,他决定在他的国家内建造通水渠道,实现村村通水,和首都连通的村庄都将通水。作为国家的统治者和国家智慧的象征,他需要用一个最优的方式建造通水渠道。

经过几天的研究,他终于完成了计划。他希望通水渠道每千米的平均成本最小。也就是说,通水渠道的总成本与总长度的比例必须最小。他只需要修建将水通到所有村庄的必要通道就可以,这意味着将每个村庄连接到首都只有一种方式。

他的工程师调查了国家,并记录了每个村庄的位置。在两个村庄之间所有的通水渠道都是直线。由于任何两个村庄的海拔高度都不同,因此工程师得出的结论是,每两个村之间的通水渠道都需要安装一个垂直传输水的升降机,可以将水向上打,或让水流下来。通水渠道的长度是两村之间的水平距离,通水渠道的成本是升降高度。

要注意每个村庄所在的不同的海拔高度,而且不同的通水渠道不能共享一个升降机。通水渠道能安全地相交,不会出现三个村庄在同一条直线上的情况。

作为 David 国王的首席科学家和程序员,请你找出建造通水渠道的最佳解决方案。

输入

存在若干测试用例。每个测试用例开始的第一行给出整数 N2 \le N \le 1000),表示村庄的数目。

接下来的 N 行每行给出 3 个整数 xyz0 \le x, y < 100000 \le z < 10000000),其中 (x, y) 是村庄的位置,z 是村庄的海拔高度。

第一个村庄是首都。

N = 0 结束输入,程序不用处理。

输出

对于每个测试用例,输出一行,给出一个十进制数,表示通水渠道总成本与总长度的最小比值。这个数字精确到小数点后三位。

样例

输入

4
0 0 0
0 1 1
1 1 2
1 0 3
0

输出

1.000