#P14499. [NordicOI 2026]Catching Apples

    ID: 13703 传统题 3000ms 1024MiB 尝试: 2 已通过: 1 难度: 7 上传者: 标签>CF2300贪心数据结构二分排序线段树动态规划

[NordicOI 2026]Catching Apples

题目描述

苹果园可以看作是一条一维直线。共有 NN 个苹果,第 ii 个苹果在时间 tit_i 掉落在位置 xix_i

机器人的最大移动速度为 11。为了接住第 ii 个苹果,机器人必须在时间 tit_i 恰好位于位置 xix_i。每个机器人可以从任意位置出发,在接住最后一个苹果后,它可以停在任意位置。

你的任务是使用尽可能少的机器人接住所有苹果。你还需要输出每个苹果由哪一个机器人接住。

输入格式

第一行包含一个整数 NN (1N2105)(1 \leq N \leq 2 \cdot 10^5),表示苹果的数量。

接下来 NN 行,每行包含两个整数 tit_ixix_i (1ti,xi109)(1 \leq t_i, x_i \leq 10^9),分别表示第 ii 个苹果掉落的时间和位置。

所有 (ti,xi)(t_i, x_i) 坐标对都是不同的。

输出格式

输出一个整数 KK,表示接住所有苹果所需的最少机器人数量。

接下来一行输出 NN 个整数 a1,a2,,aNa_1, a_2, \dots, a_N,其中 aia_i 表示接住第 ii 个苹果的机器人编号。

机器人编号必须在 11KK 之间,且 11KK 的每个编号都必须至少使用一次。

如果存在多种最优分配方案,你可以输出其中任意一种。

仅对于第 44 组数据,允许只输出整数 KK

4
1 1
3 2
5 3
8 1

1
1 1 1 1

3
1 1
2 5
3 1

2
1 2 1

4
2 2
3 1
3 3
4 2

2
1 1 2 1

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 1515 N20N \leq 20
22 1313 最少机器人数量不超过 22
33 2020 N5000N \leq 5000
44 2727 仅需输出机器人数量 KK,无需提供分配方案
55 2525 无附加限制