Link 喜欢各种酷炫的挑战,比如穿过小孔射箭、从 3000 米高的雪山上滑下,以及用巨大的叶子演奏音乐。现在,他正在尝试一项新的挑战:在不沉入湖中的情况下滑翔穿过一个湖泊。
Link 的世界是一个三维空间,我们定义一个笛卡尔坐标系 $(x, y, z)$,其中 $z$ 为高度。水面是平面 $z = 0$。Link 从位置 $(s_x, s_y, 0)$ 出发,目的地是 $(t_x, t_y, 0)$。如果他在任何时刻的高度 $z$ 严格小于 $0$(即 $z < 0$),则意味着他掉进了水里,挑战失败。
在 Link 的世界里,与地球不同,物体在空中以恒定的速度 $v_f$ 自由落体。在如此快的下落速度下,Link 无法控制自己的身体,只能以零水平速度垂直下落。幸运的是,Link 有一个滑翔伞可以减缓下落速度。一旦他打开滑翔伞,下落速度就会变为 $v_p$ ($v_p < v_f$),并且 Link 能够以不超过 $v_h$ 的速度在任何方向上进行水平移动。形式上,Link 在 $x$ 方向的速度 $v_x$ 和在 $y$ 方向的速度 $v_y$ 应满足 $\sqrt{v_x^2 + v_y^2} \le v_h$。Link 可以随时打开或关闭滑翔伞,次数不限。
对 Link 来说更好的是,湖中有 $n + 1$ 个奇异的风洞,产生向上的风,帮助 Link 升得更高。这些风洞编号为 $0$ 到 $n$,由元组 $(x_i, y_i, v_i)$ 描述,其中 $i = 0, 1, \dots, n$。第 $i$ 个风洞的位置是 $(x_i, y_i, 0)$,其向上风的速度为 $v_i$。Link 必须位于垂直线 $[x = x_i, y = y_i]$ 上,且必须打开滑翔伞才能受到第 $i$ 个风洞的影响。如果 Link 在第 $i$ 个风洞上方打开滑翔伞,他将以 $v_i - v_p$ 的速度上升(若 $v_i > v_p$),或以 $v_p - v_i$ 的速度下降(若 $v_p > v_i$),或在 $v_p = v_i$ 时保持垂直速度为零。Link 出发的位置是第 $0$ 号风洞,这意味着 $s_x = x_0, s_y = y_0$。Link 精心选择了这个位置,使得 $v_0 > v_p$,这意味着他最初可以升到任意高度。因此,可以证明,只要时间足够,Link 总能到达目的地而不掉进湖里。
Link 打开和关闭滑翔伞的时间,以及改变速度的时间可以忽略不计。Link 想知道到达目的地所需的最短时间。
输入格式
输入包含多个测试用例。输入的第一行包含一个正整数 $T$,表示测试用例的数量。
对于每个测试用例,第一行包含四个整数 $s_x, s_y, t_x, t_y$ ($-10^4 \le s_x, s_y, t_x, t_y \le 10^4$),描述起点和终点的坐标。第二行包含三个整数 $v_f, v_p, v_h$ ($0 < v_p < v_f \le 10^4, 0 < v_h \le 10^4$),分别表示自由落体速度、打开滑翔伞后的下落速度以及最大水平速度。第三行包含一个正整数 $n$ ($n \le 4000$),表示除起点外的风洞数量。接下来的 $n + 1$ 行,每行包含三个整数 $x_i, y_i, v_i$ ($-10^4 \le x_i, y_i \le 10^4, 0 < v_i \le 10^4, i = 0, 1, \dots, n$),表示每个风洞的位置和风速。保证没有两个风洞位于同一位置,且目的地没有风洞。
保证 $x_0 = s_x, y_0 = s_y, v_0 > v_p$,且所有测试用例的 $n$ 之和不超过 $10^4$。
输出格式
对于每个测试用例,输出一行一个数字,表示在不掉入湖中的前提下到达 $(t_x, t_y, 0)$ 所需的最短时间。如果你的答案的绝对误差或相对误差不超过 $10^{-9}$,则该答案将被接受。
样例
样例输入 1
2 0 0 3 4 5 4 1 1 0 0 5 3 0 6 0 0 3 4 5 4 1 1 0 0 5 3 0 7
样例输出 1
25.000000000000000 24.333333333333332
说明
在第一个样例中,Link 在 $(0, 0, 0)$ 处打开滑翔伞并等待 20 秒,使他上升到 20 个单位的高度。然后他直线移动到 $(3, 4, 0)$,花费 5 秒到达。
在第二个样例中,Link 首先上升到 12 个单位的高度,然后直线移动到 $(3, 0, 0)$,这花费了他 15 秒。然后他上升到 16 个单位的高度,并直线移动到目的地,这花费了 $\frac{28}{3}$ 秒。