#P13648. [NOISG 2016] Rock Climbing
[NOISG 2016] Rock Climbing
Description
在某一天,Panda 先生和猫咪 Rar 决定去攀岩。攀岩墙上有 块岩石。第 块岩石位于距离墙底 的高度,距离墙中心右侧 个单位的位置。如果 为负,则表示在中心左侧。所有岩石的位置都不相同。
为了考验 Panda 先生的攀岩技巧,猫咪 Rar 给他出了一个挑战。挑战内容如下:
- 在 块岩石中,猫咪 Rar 会选出 块岩石组成一个集合 。
- 为了赢得挑战,Panda 先生需要从集合 中任选一对岩石 。Panda 先生可以自由选择任意一对岩石,只要 且两块岩石都在集合 中。
- Panda 先生将从第一块岩石 出发,尝试到达第二块岩石 。在从 到 的过程中,他可以经过其他岩石,无论这些岩石是否在集合 中。
- 但是,每块岩石都有一个滑溜系数 。滑溜系数越高,越难从这块岩石伸展到远处的岩石而不滑落。此外,猫咪 Rar 只允许他向上攀爬。更准确地说,从第 块岩石移动到第 块岩石,需要满足 且 。
- 如果 Panda 先生能够选出一对岩石 ,使得他能从岩石 到达岩石 ,则他赢得挑战。如果无法做到,则挑战失败。
请参考样例输入输出以获取更多细节。
当然,Panda 先生知道有很多岩石对无法完成挑战。他想要找到最小的 ,使得无论猫咪 Rar 如何选择岩石集合,他都能完成挑战。请你帮他找出这个值。
Input Format
你的程序需要从标准输入读取数据。第一行包含一个整数 。接下来的 行,每行包含三个整数,分别为 ,表示第 块岩石的信息。
Output Format
你的程序需要输出一行,一个整数,表示使 Panda 先生总能完成挑战所需的最小岩石数。如果 Panda 先生永远无法完成挑战,输出 。
5
0 3 2
-1 5 1
4 4 3
-1 1 2
2 2 1
3
3
0 1 2000000
-1 2 2000000
1 2 2000000
3
2
0 1 1
0 5 1
-1
Hint
样例解释 1
当 时,存在某些岩石子集使 Panda 先生无法完成挑战。例如,如果猫咪 Rar 选择 和 这两块岩石组成集合 ,Panda 先生无法完成挑战。Panda 先生无法从 移动到 ,因为只能向上攀爬。Panda 先生也无法直接从 移动到 ,因为 。
另一种选择是尝试间接从 到 。Panda 先生可以从 攀爬到 ,因为 。但他无法从 移动到 ,因为必须向上攀爬。
此外,可以验证,对于任意 3 块岩石的集合,总能找到一对岩石使 Panda 先生完成挑战。例如,如果猫咪 Rar 选择 、、 这三块岩石组成集合 ,Panda 先生可以选择 和 这对岩石。完成挑战的方法是从 攀爬到 ,再到 。中间经过的岩石不需要在 中。
样例解释 2
本测试点仅适用于子任务 1、2 和 5。
如果猫咪 Rar 选择高度为 2 的两块岩石(即第 2 和第 3 块岩石),Panda 先生无法完成挑战,因为他只能向上攀爬。因此,只有当猫咪 Rar 选择所有岩石时,Panda 先生才能保证完成挑战。
样例解释 3
本测试点仅适用于子任务 2、3、4 和 5。
即使猫咪 Rar 选择了所有岩石,Panda 先生也无法从一块岩石到达另一块岩石。因此,Panda 先生永远无法完成挑战。
子任务
每个测试点的最大运行时间为 1.0 秒。你的程序将在以下输入范围内进行测试:
| 子任务 | 分值 | 其他限制 | |
|---|---|---|---|
| 1 | 15 | 所有 | |
| 2 | 29 | 无其他限制 | |
| 3 | 17 | 所有 ,且所有 相等 | |
| 4 | 19 | 所有 ,且所有 不是 3 的倍数 | |
| 5 | 20 | 无其他限制 |
对于所有测试点,,,。
由 ChatGPT 4.1 翻译
京公网安备 11011102002149号