手机游戏在移动设备上的流行程度呈爆炸式增长,你投身于这股浪潮中,正在开发一种警察抓小偷类型的游戏。一些玩家控制警察,而另一些玩家控制小偷。警察玩家的目标是抓住小偷,而小偷则试图逃脱。在开发过程中,你遇到了一个问题。手机上的更新频率存在明显的延迟。你获取玩家位置更新的频率可能低至每秒一次。由于得分取决于警察抓住小偷的时间,你需要计算出这个确切的时间。
警察和小偷在游戏世界中被建模为矩形,如果他们的矩形重叠,则表示警察抓住了小偷。已知矩形的大小,以及它们在时间 $0$ 和时间 $1$ 的位置。你的程序需要计算这些矩形在时间区间 $[0, 1]$ 内是否发生过重叠,如果发生过,请计算出它们第一次发生重叠的时间。
输入格式
输入的第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例包含两行,每行包含 $6$ 个数字。第一行包含整数 $W_1, H_1, X_{start1}, Y_{start1}, X_{end1}$ 和 $Y_{end1}$。$W$ 和 $H$ 分别描述警察矩形的宽度和高度。$X_{start1}$ 和 $Y_{start1}$ 描述警察的起始点(左上角),而 $X_{end1}$ 和 $Y_{end1}$ 描述他的终点(时间 $1$ 时所在的位置)。第二行包含六个整数 $W_2, H_2, X_{start2}, Y_{start2}, X_{end2}$ 和 $Y_{end2}$,对应小偷的相应数据。
输出格式
对于每个测试用例,输出一行,包含一个数字,即发生碰撞的最早时刻(一个介于 $0$ 和 $1$ 之间的实数,包含 $0$ 和 $1$)。如果没有发生碰撞,则输出 No Collision。
数据范围
- $0 < T \le 100$
- $0 < W_i, H_i \le 100$
- $0 \le X_{starti}, Y_{starti}, X_{endi}, Y_{endi} \le 10000$
- 坐标系中 $x$ 值从左向右增加,$y$ 值从上向下增加。
- 如果两个矩形重叠,或者它们的边/角接触,则视为发生碰撞。
- 假设警察和小偷都沿直线移动。
- 允许与正确答案有最多 $10^{-7}$ 的绝对或相对误差。
样例
样例输入 1
3 2 2 0 0 0 8 2 2 2 10 2 2 5 5 10 10 0 0 1 4 0 0 10 0 4 4 3 9 10 18 3 3 8 14 15 23
样例输出 1
0.5 0.6 No Collision