#HK4916. 「POI2018 R1」律师 Lawyers

「POI2018 R1」律师 Lawyers

题目描述

题目译自 XXV Olimpiada Informatyczna — I etap Prawnicy

字节扎尔父子律师事务所刚接到一位重要客户的紧急委托。案子刻不容缓,需要从 nn 名律师中挑出 kk 人开会。每位律师都有一个连续的空闲时间段。你得选出 kk 名律师,让他们共同空闲的时间(即会议时间)尽可能长。

输入格式

输入的第一行包含两个整数 nnkk (1kn)(1 \leq k \leq n),分别表示事务所的律师总数和需要开会的律师人数。

接下来的 nn 行,每行两个整数 aia_{i}bib_{i} (1ai<bi109)(1 \leq a_{i} < b_{i} \leq 10^{9}),表示第 ii 名律师从时刻 aia_{i}bib_{i} 空闲。

输出格式

第一行输出一个整数,表示会议的最长可能持续时间。可以假设会议时长至少为 11

第二行输出 kk 个整数(空格分隔),表示参加会议的律师编号。律师的编号可以按任意顺序输出。若有多个正确答案,输出任意一个即可。

6 3
3 8
4 12
2 6
1 10
5 9
11 12
4
1 2 4

三个律师的最长会议时间为 44。可选 112244 号律师,会议从时刻 4488。另一个合法的选择是 224455 号律师,会议从时刻 5599

附加样例

  1. n=7,k=3n=7, k=3,有两组律师可满足要求;
  2. n=k=1000,ai=i,bi=106+in=k=1000, a_{i}=i, b_{i}=10^{6}+i
  3. n=1000,k=1,ai=2i1,bi=2in=1000, k=1, a_{i}=2i-1, b_{i}=2i

数据范围与提示

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

子任务 附加限制 分值
11 n20n \leq 20 2020
22 n300,ai,bi300n \leq 300, a_{i}, b_{i} \leq 300 1515
33 n5000n \leq 5000 1515
44 n1000000,k=1 或 k=nn \leq 1000000, k=1 \text{ 或 } k=n 1515
55 n1000000n \leq 1000000 3535