#P16380. [NordicOI 2026] Catching Apples

    ID: 18402 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 显示难度提高 上传者: 标签>Special Judge2026Dilworth 定理NordicOI(北欧)

[NordicOI 2026] Catching Apples

背景

翻译来源:loj #5711. 「NordicOI 2026」Catching Apples。

3s,1024MB。

Subtask 0 为样例。

题目描述

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

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

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

输入格式

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

接下来 NN 行,每行包含两个整数 tit_i 和 xix_i (1≤ti,xi≤109)(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 个苹果的机器人编号。

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

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

仅对于第 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 N≤20N \leq 20
22 1313 最少机器人数量不超过 22
33 2020 N≤5000N \leq 5000
44 2727 仅需输出机器人数量 KK,无需提供分配方案
55 2525 无附加限制

样例解释

在第一个样例中,一个机器人可以按顺序接住每个苹果。

在第二个样例中,苹果 11 和苹果 33 可以由同一个机器人接住,但苹果 22 必须由另一个机器人接住。

在第三个样例中,所需的最少机器人数量为 22,但存在多种不同的最优分配方案。