#P14222. [ICPC 2024 Kunming I] 收集硬币

[ICPC 2024 Kunming I] 收集硬币

题目描述

10910^9 个格子排成一行,从左到右编号从 1110910^9。两个机器人正在格子里巡逻。每个机器人的最大速度是 vv 格每秒(vv 是整数),表示如果机器人目前在格子 pp,它在下一秒可以移动到任意一个格子 pp',只要满足 1p1091 \le p' \le 10^9ppv|p' - p| \le v

将有 nn 枚硬币在格子中出现。第 ii 枚硬币会在第 tit_i 秒出现在格子 cic_i。如果有一个机器人同时也位于那个格子,它就会把硬币捡起来。否则硬币会马上消失。

更正式地,在每一秒内,以下事件会依次发生:

  • 每个机器人可以移动到距离不超过 vv 的格子(也可以待在当前的格子里)。
  • 硬币在格子中出现。
  • 如果至少一个机器人和一枚硬币在同一个格子里,这枚硬币就会被收集。
  • 所有未被收集的硬币消失。

您需要决定两个机器人在第 11 秒开始前的初始位置,并合理地移动它们,使得所有硬币都能被收集,并且 vv 尽可能小。输出 vv 的最小值。

输入格式

有多组测试数据。第一行输入一个整数 TT 表示测试数据组数。对于每组测试数据:

第一行输入一个整数 nn1n1061 \le n \le 10^6)表示格子里将会出现的硬币数量。

对于接下来 nn 行,第 ii 行输入两个整数 tit_icic_i1ti,ci1091 \le t_i, c_i \le 10^9)表示第 ii 枚硬币出现的时间以及第 ii 枚硬币出现的位置。保证对于所有 1i<n1 \le i < ntiti+1t_i \le t_{i + 1}。同时保证对于所有 iji \ne jtitjt_i \ne t_jcicjc_i \ne c_j

保证所有数据 nn 之和不超过 10610^6

输出格式

每组数据输出一行一个整数,表示机器人最大速度的最小值。如果不可能收集所有硬币,输出 -1\texttt{-1}

3
5
1 1
3 7
3 4
4 3
5 10
1
10 100
3
10 100
10 1000
10 10000
2
0
-1