AT_arc032_3.[ARC032C] 仕事計画

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

大工的チョーさん(Daiku Cho)被委托了 NN 个工作。第 ii 个工作在时刻 aia_i 开始,在 bib_i 结束。

チョーさん一次不能同时进行多个工作,因此他希望从这些工作中选择尽可能多的、时间不重叠的工作来完成。不过,他可以在一个工作结束的同时立即开始下一个工作。

如果有多种选择方式能选出最多的工作,チョーさん希望选择那些按开始时间排序后,工作编号的序列字典序最小的方案。

虽然チョーさん很擅长工作,但他不太擅长管理日程。请你帮他求出他能接下的最优工作组合。

对于长度为 LL 的序列 A={a1,a2,…,aL}A=\{a_1,a_2,\ldots,a_L\} 和 B={b1,b2,…,bL}B=\{b_1,b_2,\ldots,b_L\},若存在 k(1≤k≤L)k(1\leq k\leq L),使得

  • 对于 i<ki<k 有 ai=bia_i=b_i,
  • 对于 i=ki=k 有 ak<bka_k<b_k,
    则称 AA 的字典序小于 BB。

输入格式

输入通过标准输入给出。

第 11 行包含一个整数 NN,表示チョーさん被委托的工作数。
接下来的 NN 行,每行包含两个整数 ai,bia_i, b_i,表示第 ii 个工作的开始和结束时间。数值之间用空格分隔。

  • 第 11 行:N (1≤N≤100,000)N\ (1\leq N\leq 100,000)。
  • 第 22 行到第 N+1N+1 行:每行两个整数 ai,bi (0≤ai<bi≤1,000,000)a_i, b_i\ (0\leq a_i < b_i \leq 1,000,000)。

输出格式

第 11 行输出チョーさん能接下的工作的最大数量。

第 22 行输出这些工作的编号(按开始时间从早到晚排序),编号之间用一个空格分隔。

请不要忘记输出末尾换行符,并且不要在末尾添加多余的空格。

输入输出样例

  • 输入#1

    4
    0 5
    0 3
    3 7
    5 10

    输出#1

    2
    1 4
  • 输入#2

    5
    0 5
    0 3
    3 7
    5 10
    7 12

    输出#2

    3
    2 3 5
  • 输入#3

    8
    1 5
    3 9
    2 5
    1 2
    8 10
    9 11
    7 15
    10 14

    输出#3

    4
    4 3 5 8

说明/提示

样例解释 1

チョーさん最多可以选择 22 个工作。有 33 种选择方式:可以选择工作 11 和 44,或者工作 22 和 33,或者工作 22 和 44。其中,按开始时间排序后,工作编号序列字典序最小的是选择工作 11 和 44,因为它们的编号按开始时间排序为 {1,4}\{1,4\},这是字典序最小的(21:12修正)。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页