字节国(Bajtocja)是一个美丽、无限但非常平坦的一维国度,可以将其视为数轴。字节国即将迎来一场流星雨。得益于字节国气象学家的高明预测,已知将会有恰好 $n$ 颗流星落下。此外,每一颗流星落下时间和地点都是已知的:第 $i$ 颗流星将在时刻 $t_i$ 落在点 $x_i$。
现在是时刻 $0$,Bajtazar 位于点 $0$。由于流星很危险,且 Bajtazar 非常担心他随身携带的笔记本电脑中的重要数据,他希望避免与任何一颗流星发生“亲密接触”。更准确地说,Bajtazar 希望最大化他与最近一颗落下流星之间的距离(每一项距离均在流星落下的时刻测量)。
假设 Bajtazar 的奔跑速度最大为每小时一个单位距离(向左或向右),且他永远不会感到疲劳。他也可以瞬间(且多次)改变方向。
请帮助 Bajtazar 保护自己和他的笔记本电脑。编写一个程序,读取有关落下流星的信息,并确定 Bajtazar 在最优策略下,与最近流星的距离至少能保持多远。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 200\,000$),表示落下流星的数量。接下来的 $n$ 行,每行描述一颗流星。每颗流星的描述由两个整数 $t_i$ 和 $x_i$ ($0 \le t_i \le 10^9$, $-10^9 \le x_i \le 10^9$) 组成,分别表示第 $i$ 颗流星落下的时刻和位置。
输出格式
你的程序应输出一个实数,保留一位小数,表示在最优解中 Bajtazar 与最近落下流星的距离。
如果结果是一个整数,可以输出带一位小数的零,也可以不带小数点。
样例
输入格式 1
3 5 -3 7 6 4 -4
输出格式 1
5.5
说明
Bajtazar 可以开始以 $\frac{1}{2}$ 的速度向右跑,以便在时刻 $4$ 到达位置 $2$(此时距离第三颗流星 $6$ 个单位),并在时刻 $5$ 到达位置 $2\frac{1}{2}$(此时距离第一颗流星 $5\frac{1}{2}$ 个单位)。此时,Bajtazar 应折返并以最大速度 $1$ 向左跑,以便在时刻 $7$ 到达位置 $\frac{1}{2}$(距离第二颗流星 $5\frac{1}{2}$ 个单位)。
通过这种方式,Bajtazar 在整个过程中与落下流星的距离始终保持至少 $5\frac{1}{2}$;不可能保持更大的距离。
评估测试
以下是部分测试用例及其对应的正确答案:
- $n = 5, t_i = i, x_i = 2i - 6$;答案为 $1.5$。
- $n = 10, t_i = 100, x_i = (-1)^i \cdot i^2$;答案为 $19$。
- $n = 1000, t_i = 4000, x_i = 8i - 4004$;答案为 $4$。
- $n = 200\,000, t_i = 5000i, x_i = 100\,000$;答案为 $105\,000$。
子任务
测试集分为以下子任务。每个子任务由一组或多组测试数据组成。
| 子任务 | 附加条件 | 分值 |
|---|---|---|
| 1 | 对于所有 $i$,$t_i \le 1000$ | 20 |
| 2 | 所有 $t_i$ 的值相等 | 10 |
| 3 | $n \le 1000$ | 20 |
| 4 | 无附加限制 | 50 |