智乃的草坪
题号:NC309462
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}智乃有一块矩形草坪,从地图正上方俯视,草坪的四个端点分别位于坐标 (0,r)(0,-r)(c,r)(c,-r)
\hspace{15pt}现在智乃有 n 个自动洒水装置,第 i 个洒水装置位于坐标 (p_i,0) 上,浇水速率为 v_i,保证洒水装置的坐标一定位于草坪内部或边缘。
\hspace{15pt}当这些洒水装置启动,t 个时间单位以后,第 i 个洒水装置洒水的范围是一个以坐标 (p_i,0) 为圆心,以 v_i\times t 为半径的圆。
\hspace{15pt}当经过 t 个时间单位以后,所有洒水装置洒水的范围覆盖了整个草坪的矩形,就说明智乃完成了她的浇水工作。更具体地,若矩形区域内的所有点 (x, y) 满足 0 \le x \le c-r \le y \le r 均被至少一个启动的圆覆盖,则称完成了浇水工作。

\hspace{15pt}现在由于电力紧缺,智乃发现他至多只能启动其中的 k 个洒水装置。问智乃完成整个草坪洒水工作的最短时间是多少。显然,在经历足够长的时间后,即使只使用 1 个洒水器也能完成工作,所以答案一定存在。

输入描述:

\hspace{15pt}第一行输入四个非负整数 n,k,r,c\left(1\leq n \leq 10^5;\, 1\leq k \leq n;\, 1\leq r,c\leq 10^6\right),分别表示总共的洒水装置数、最多启动的洒水装置数、草坪的一半高度和宽度。
\hspace{15pt}此后 n 行,第 i 行输入两个整数 p_i,v_i\left(0\leq p_i \leq c;\, 1\leq v_i \leq 10^4\right),表示第 i 个洒水装置的坐标和洒水速率。

输出描述:

\hspace{15pt}输出一个实数,表示最短工作时间。

\hspace{15pt}由于实数的计算存在误差,当误差的量级不超过 10^{-4} 时,您的答案都将被接受。具体来说,设您的答案为 a,标准答案为 b,当且仅当 \tfrac{|a-b|}{\max(1,|b|)}\leq 10^{-4} 时,您的答案将被接受。
示例1

输入

复制
2 1 10 1000000
0 114
1000000 514

输出

复制
1945.52529193
示例2

输入

复制
2 2 10 1000000
0 114
1000000 514

输出

复制
1592.35668843
示例3

输入

复制
2 2 200000 1000000
0 114
1000000 514

输出

复制
1853.90929144

说明

\hspace{15pt}在这个样例中,如图所示,深绿色重合部分为草坪范围。

备注:

\hspace{15pt}可以使用几何画板辅助完成本题:https://www.desmos.com/calculator?lang=zh-CN