#6570. 第一关 (Платформа: прво ниво)

第一关 (Платформа: прво ниво)

题目名称:平台:第一关 (Платформа: прво ниво)

来源:马其顿编程竞赛 (Macedonian Programming Contests)

题目描述

在 2D 游戏“平台”中,初始平台是一个位于 [0,L][0, L] 的水平区间。现有 NN 条待下落的线段,每条线段由区间 [A,B][A, B] 表示。线段下落后的命运取决于它与当前平台范围 [Lmin,Rmax][L_{min}, R_{max}] 的关系:

  1. 粘贴 (Stick):线段至少有一半的长度位于当前平台范围内。粘贴后,平台的范围更新为原范围与该线段范围的并集。
  2. 坠落 (Fall):线段有超过一半的长度位于平台左侧外或右侧外。线段消失,平台范围不变。
  3. 粉碎 (Shatter):线段同时超出平台的左边界和右边界。线段消失,平台范围不变。

任务:给定 NN 条线段的原始数据,请重新排列它们的下落顺序,以使成功粘贴在平台上的线段数量达到最大。你只需要输出这个最大数量

输入格式

  • 第一行:两个整数 NN (1N10001 \le N \le 1000) 和 LL (1L10001 \le L \le 1000)。
  • 接下来的 NN 行:每行两个整数 AABB (1000A<B2000-1000 \le A < B \le 2000),表示线段的端点。

输出格式

  • 一个整数,代表最优顺序下能粘贴的线段最大数量。

限制要求

  • 时间限制: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)。版权归原赛事组委会所有。