“警察与强盗”游戏在一条长直街道上进行,为了方便起见,可以将街道视为数轴。一名玩家(强盗)位于数轴的 $0$ 位置,其余 $n$ 名玩家(警察)站在他两侧(每侧至少有一名警察)。游戏开始时,每名警察以设定的速度向强盗跑去,强盗以速度 $v$ 开始逃跑,该速度大于任何警察的速度,且初始方向向右(沿数轴正方向)。每当强盗到达第一个冲向他的警察时,他会在忽略不计的时间内掉头,并继续向相反方向奔跑。这种情况一直重复,直到两名向相反方向奔跑的警察相遇,且强盗位于他们之间。
给定强盗和警察的初始位置,求强盗在整个游戏过程中移动的总距离。
输入格式
第一行包含测试用例的数量 $z$ ($1 \le z \le 10\,000$)。接下来是各测试用例的描述。
每个测试用例的第一行包含两个整数 $n$ ($2 \le n \le 400\,000$) 和 $v$ ($1 < v \le 10^6$),分别表示警察的数量和强盗的速度。
接下来的 $n$ 行,每行包含两个整数 $p_i$ ($-10^{12} \le p_i \le 10^{12}, p_i \neq 0$) 和 $v_i$ ($1 \le v_i < v$),分别表示第 $i$ 名警察的起始位置和速度。
所有测试用例中警察的总数不超过 $2 \cdot 10^6$。
输出格式
对于每个测试用例,在单独的一行中输出一个十进制格式的实数(非科学计数法),表示强盗移动的总距离。为了使答案被视为正确,相对误差或绝对误差不应超过 $10^{-8}$。换句话说,如果你的算法输出为 $a$,正确答案为 $b$,则当 $\frac{|a-b|}{\max(1, b)} \le 10^{-8}$ 时,你的答案将被接受。
输出的数字小数点后位数不得超过 20 位。
样例
输入 1
3 4 9 10 2 -7 2 -6 1 7 1 2 8 -1 7 1 6 2 3 -1000000000000 1 1000000000000 1
输出 1
38.25 1.23076923 3000000000000
说明
注意,本题同时考虑绝对误差和相对误差。这意味着当正确答案很大时,程序允许的误差范围也会相应变大。在最后一个样例测试用例中,正确答案为 $3 \cdot 10^{12}$,因此任何与该值偏差不超过 $30\,000$ 的数字都将被接受。