最近点对问题是计算几何中的一个经典问题。在这个问题中,给定欧几里得平面上的 $n$ 个点,你需要找到距离最近的一对点。
现在,参加过多年程序设计竞赛的聪明人 Claris 正在尝试解决一个更难的问题,即最近线段对问题,它的描述也像上面那样简单。
然而,这个问题对 Claris 来说似乎太难了,她正在向你寻求帮助。
现在欧几里得平面上有 $n$ 条线段。你必须挑选两条不同的线段,然后在每条线段上各取一个点,使得这两个点之间的距离尽可能小。
为简单起见,任意两条给定的线段都没有公共点。此外,你不需要指出这两个点:只需找出它们之间可能的最小距离即可。
输入格式
输入包含多个测试用例,第一行包含一个整数 $T$ ($1 \le T \le 100$),表示测试用例的数量。
对于每个测试用例,第一行包含一个整数 $n$ ($2 \le n \le 100\,000$),表示欧几里得平面上线段的数量。
接下来的 $n$ 行描述了欧几里得平面上的所有线段。其中第 $i$ 行包含四个整数 $x_1, y_1, x_2$ 和 $y_2$,描述了一条连接 $(x_1, y_1)$ 和 $(x_2, y_2)$ 的线段,其中 $-10^9 \le x_1, y_1, x_2, y_2 \le 10^9$。
保证在每个测试用例中,每条线段的两个端点不重合,且任意两条线段没有公共点。同时保证所有测试用例中 $n$ 的总和不超过 $100\,000$。
输出格式
对于每个测试用例,输出一行,包含一个实数:最近线段对问题的答案,要求绝对误差或相对误差不超过 $10^{-6}$。
准确地说,假设你的答案是 $a$,裁判的答案是 $b$。当且仅当 $\frac{|a-b|}{\max\{1,|b|\}} \le 10^{-6}$ 时,你的答案将被视为正确。
样例
样例输入 1
2 2 0 1 1 2 1 1 2 0 2 0 1 1 2 2 2 3 1
样例输出 1
0.707106781185 1.000000000001