在 21 世纪,人类在银河系中不断繁衍。自上世纪末以来,为了发现新的宜居行星,数以千计的先驱飞船被发射升空。
Tripenerse 号就是其中之一,它正驶向仙女座星系。在超空间中进行了漫长的航行后,船员们终于发现了一颗非常有希望的候选行星。接下来的任务是调查这颗行星,以确定它是否真的适合新居民居住。
为此,飞船携带了一些无人着陆器。船长 Juclean Dripac 决定将它们投放到行星上并收集相关数据。但不幸的是,这些机器人有些陈旧且不够智能,因此操作员必须在着陆前规划好它们在行星上的行动。包括你在内的许多船员都被召集起来制定这一重要计划。
任务中最复杂的部分是收集并整合许多机器人独立采集的所有数据。机器人需要在任务期间的某个时刻建立全对全通信通道以交换数据。也就是说,所有机器人在预定的时间点同时激活它们的通信通道,并在那一刻相互交换数据。这个时刻可以发生在任务的开始、结束或中间的任何时间。你必须选择这个时刻,操作员将据此对机器人进行编程。
机器人使用无线通道进行通信,因此机器人之间的距离不会限制连通性。但两个机器人之间的距离越远,它们通信所需的功率就越大。由于电池容量的限制,你需要尽可能节省传输功率。
好消息是,机器人的通信单元也具有路由功能,因此机器人可以通过其他机器人作为中继进行间接通信。考虑一个图,其中顶点代表机器人,边代表它们之间建立的通信通道。如果该图是连通的,则可以建立全对全通信。
你的任务是编写程序,计算机器人之间进行全对全通信所需的最小总传输功率。请记住,它们在任务期间只能在某个时刻进行一次通信会话,且你可以提前选择这个时刻。每个机器人在行星表面做线性运动。两个机器人之间所需的传输功率与它们之间的距离成正比,因此这里的成本正是建立通信通道的每对机器人之间距离的总和。
你可以将行星表面视为一个足够大的二维平面。机器人之间传输数据所需的时间也可以忽略不计。
输入格式
输入包含不超过 200 组数据集。每组数据集的格式如下:
$N \ T$ $x_1 \ y_1 \ vx_1 \ vy_1$ $\dots$ $x_N \ y_N \ vx_N \ vy_N$
每组数据集的第一行包含两个整数:$N$ 是用于收集数据的机器人数量($2 \le N \le 16$),$T$ 是任务的时间限制($1 \le T < 1000$)。
接下来的 $N$ 行每行描述一个机器人的运动。$(x_i, y_i)$ 和 $(vx_i, vy_i)$ 分别是第 $i$ 个机器人的初始着陆位置和速度($|x_i|, |y_i| < 10^6$,$|vx_i|, |vy_i| < 1000$)。
最后一行数据集后跟有一行包含两个零的行。该行不属于任何数据集,不应进行处理。
保证所有数据集中的 $N$ 之和不超过 1700。
输出格式
对于每组数据集,输出一行,表示进行全对全通信所需的最小通信成本。你的程序可以输出小数点后任意位数的数字。绝对误差应小于或等于 $0.001$。
样例
样例输入 1
4 2 2 0 0 1 0 4 1 0 4 6 0 -1 6 2 -1 0 4 6 2 0 0 1 0 4 1 0 4 6 0 -1 6 2 -1 0 0 0
样例输出 1
6.00000000 4.24264069