Alice 和 Bob 在他们豪宅外的沙地上玩游戏。地上画了一个代表月亮的圆,他们每个人都选了一个地方站着(在月亮内部、边缘或外部)。游戏的目标是其中一名玩家以最快的速度跑到另一名玩家那里,同时在跑步过程中触碰到月亮。
给定月亮、Alice 和 Bob 的位置,求出从一名玩家出发,触碰(或穿过)月亮的边缘或内部,最后到达另一名玩家位置的最短路径长度。
输入格式
第一行包含一个整数 $T$,表示测试用例的数量。接下来有 $T$ 行,每行包含 7 个空格分隔的整数 $x_A, y_A, x_B, y_B, x_C, y_C, r$,分别表示 Alice 的坐标 $A = (x_A, y_A)$,Bob 的坐标 $B = (x_B, y_B)$,圆心 $C = (x_C, y_C)$ 以及半径 $r$。
数据范围
- $1 \le T \le 10^3$
- $-10^3 \le x_A, y_A, x_B, y_B, x_C, y_C \le 10^3$
- $0 \le r \le 10^3$
输出格式
对于每个测试用例,输出一个十进制数,表示从 $A$ 到 $B$ 且至少触碰圆心为 $C$、半径为 $r$ 的圆内部或边缘上一点的最短路径长度。如果与标准答案的相对误差或绝对误差在 $10^{-6}$ 以内,则该解被视为正确。
样例
输入 1
2 0 0 2 0 -1 2 1 5 0 3 0 2 0 2
输出 1
3.9451754612261913 2
说明
第一个测试用例的解法如图所示。