luogu#P16380. [NordicOI 2026] Catching Apples

    ID: 16508 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>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 (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 无附加限制

样例解释

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

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

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