#6570. 第一关 (Платформа: прво ниво)
第一关 (Платформа: прво ниво)
题目名称:平台:第一关 (Платформа: прво ниво)
来源:马其顿编程竞赛 (Macedonian Programming Contests)
题目描述
在 2D 游戏“平台”中,初始平台是一个位于 的水平区间。现有 条待下落的线段,每条线段由区间 表示。线段下落后的命运取决于它与当前平台范围 的关系:
- 粘贴 (Stick):线段至少有一半的长度位于当前平台范围内。粘贴后,平台的范围更新为原范围与该线段范围的并集。
- 坠落 (Fall):线段有超过一半的长度位于平台左侧外或右侧外。线段消失,平台范围不变。
- 粉碎 (Shatter):线段同时超出平台的左边界和右边界。线段消失,平台范围不变。
任务:给定 条线段的原始数据,请重新排列它们的下落顺序,以使成功粘贴在平台上的线段数量达到最大。你只需要输出这个最大数量。
输入格式
- 第一行:两个整数 () 和 ()。
- 接下来的 行:每行两个整数 和 (),表示线段的端点。
输出格式
- 一个整数,代表最优顺序下能粘贴的线段最大数量。
限制要求
- 时间限制:1.0 秒
- 内存限制:64 MB
样例分析
输入:
7 5
2 4
-1 6
-3 3
6 7
1 8
6 7
7 10
输出:
6
解释:
在演示关卡中,按默认顺序只能粘贴 4 条。但在第一关中,如果我们先让第五条线段 [1, 8] 下落,它长为 7,重合部分为 [1, 5](长 4),大于一半(3.5),粘贴后平台立即扩大为 [0, 8]。由于平台变大,后续原本会粉碎或坠落的线段(如 [-1, 6] 或 [6, 7])现在更有可能满足粘贴条件。经过最优排序,最多可以粘贴 6 条。
版权信息:整理自 2021 年马其顿信息学竞赛(Macedonian Programming Contests 2021)。版权归原赛事组委会所有。