题号:NC200500
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
umi对弓道非常痴迷。
有一天,她在研究一个射箭问题:
在一个无限大的平面中,她站在

这个坐标。
有

个靶子,第

个靶子的坐标是

umi准备在

轴或

轴上放置一块挡板来挡住弓箭的轨迹,使得她可以射中的靶子数量不超过

个。
她想知道挡板的最短长度是多少?
注:假定弓箭的轨迹是起点为umi坐标、长度无穷大的射线。umi和靶子的体积可以无视。挡板的边缘碰到弓箭轨迹也可视为挡住弓箭。
注2:挡板不能弯折,起始和终点必须在同一坐标轴上。
输入描述:
第一行两个整数
,
,代表umi的坐标。
第二行两个正整数
和
,分别代表靶子的总数量、放置挡板后可射中靶子的最大值。
接下来的
行,每行两个整数
和
。代表每个靶子的坐标。
保证没有任何一个点在坐标轴上(无论umi还是靶子),保证没有任何两点重合。

输出描述:
若无论如何无法保证可以射中的靶子数量不超过
个,则输出
。
否则输出挡板的最小长度。如果你和正确答案的误差不超过
,则视为答案正确。
示例1
说明
umi要保证能射中的靶子不超过0个,即全部挡住。在y轴上选区间[1,1.5]放置一个长度为0.5的挡板即可。
备注: