描述
给定一个正方形 [0,1]×[0,1],其中包含 N 个点 (P1,P2,…,PN)。我们可以用一些线段连接这 N 个点和正方形的四个角,使得任何两个点(直接或间接)都可以通过这些线段相互到达。图的长度定义为所有线段的总长度。当 N 个点的位置固定时,一定存在一种连接方式,使得图的长度最短。我们用 LEN(P1,P2,…,PN) 来表示这种连接方式下的图的长度。
在这种情况下,LEN(P1,P2,…,PN) 是 P1,P2,…,PN 的函数。当 P1,P2,…,PN 改变位置时,LEN(P1,P2,…,PN) 也会改变。可以证明,一定存在一些点 P1′,P2′,…,PN′ 在正方形内,使得 LEN(P1′,P2′,…,PN′) 达到最小值。
给定 N 个点的初始位置,你的任务是找到 N 个点 P1′′,P2′′,…,PN′′,使得 ∣P1P1′′∣+∣P2P2′′∣+…+∣PNPN′′∣ 最小,并且 $LEN(P_1'', P_2'', \ldots, P_N'') = LEN(P_1', P_2', \ldots, P_N')$。你需要输出 ∣P1P1′′∣+∣P2P2′′∣+…+∣PNPN′′∣ 的值,其中 ∣PiPi′′∣ 是 Pi 和 Pi′′ 之间的距离。

输入
输入包含多个测试用例。对于每个测试用例,第一行包含一个整数 N(1≤N≤100),表示点的数量,接下来的 N 行给出每个点的坐标,格式如下:
x y
这里,x 和 y 是在 [0,1] 范围内的浮点数。
一个测试用例 N=0 表示输入结束,不应被处理。
输出
对于每个测试用例,输出 ∣P1P1′′∣+∣P2P2′′∣+…+∣PNPN′′∣ 的值。该值应四舍五入到小数点后三位。
输入数据 1
1
0.2 0.5
2
0 0.5
0.5 0.5
0
输出数据 1
0.300
0.500
来源
北京2004