AT_arc032_3 [ARC032C] 仕事計画

题目描述

大工的チョーさん(Daiku Cho)被委托了 $N$ 个工作。第 $i$ 个工作在时刻 $a_i$ 开始,在 $b_i$ 结束。 チョーさん一次不能同时进行多个工作,因此他希望从这些工作中选择尽可能多的、时间不重叠的工作来完成。不过,他可以在一个工作结束的同时立即开始下一个工作。 如果有多种选择方式能选出最多的工作,チョーさん希望选择那些按开始时间排序后,工作编号的序列字典序最小的方案。 虽然チョーさん很擅长工作,但他不太擅长管理日程。请你帮他求出他能接下的最优工作组合。 对于长度为 $L$ 的序列 $A=\{a_1,a_2,\ldots,a_L\}$ 和 $B=\{b_1,b_2,\ldots,b_L\}$,若存在 $k(1\leq k\leq L)$,使得 - 对于 $i

输入格式

输入通过标准输入给出。 > 第 $1$ 行包含一个整数 $N$,表示チョーさん被委托的工作数。 > 接下来的 $N$ 行,每行包含两个整数 $a_i, b_i$,表示第 $i$ 个工作的开始和结束时间。数值之间用空格分隔。 - 第 $1$ 行:$N\ (1\leq N\leq 100,000)$。 - 第 $2$ 行到第 $N+1$ 行:每行两个整数 $a_i, b_i\ (0\leq a_i < b_i \leq 1,000,000)$。

输出格式

第 $1$ 行输出チョーさん能接下的工作的最大数量。 第 $2$ 行输出这些工作的编号(按开始时间从早到晚排序),编号之间用一个空格分隔。 请不要忘记输出末尾换行符,并且不要在末尾添加多余的空格。

说明/提示

### 样例解释 1 チョーさん最多可以选择 $2$ 个工作。有 $3$ 种选择方式:可以选择工作 $1$ 和 $4$,或者工作 $2$ 和 $3$,或者工作 $2$ 和 $4$。其中,按开始时间排序后,工作编号序列字典序最小的是选择工作 $1$ 和 $4$,因为它们的编号按开始时间排序为 $\{1,4\}$,这是字典序最小的(21:12修正)。 ![](http://arc032.contest.atcoder.jp/img/arc/032/C1.png) 由 ChatGPT 4.1 翻译