2706 - 任务安排

题目描述

某研究所新研发了一个项目。该项目有 n 个研究任务待分配,任务编号为1~n;共有 k 个研究员参与本项目,研究员编号为 1~k

出于任务保密的原则,对于任务分配有着一定的要求:

  1. 每个研究员必须分配任务列表中的一段编号连续的任务,当然,只分配一个任务或者不分配任务也是可以的。
  2. 同一个任务只能被同一个研究员领取,第 i 个任务一旦分配给了某研究员,其他人员不得参与该任务。
  3. 为提升分配效率,拟定分配方式为:所有研究员按自己编号从大到小的顺序依次领取任务,每个研究员会尽可能多的领取任务。(可能会形成部分编号较小的研究员领取不到任务的情况)

请编程计算出合理的任务分配方案,使得项目完成时间尽可能的短;项目完成时间的计算方式为:最后一个完成任务的研究员,其完成任务的总时间。

输入

输入 2 个整数 nk

2 行有 n 个整数,第 i 个整数 t_i 表示编号为 i 的任务耗时。

输出

输出若干行,每行 2 个整数,第 i 行代表某个分配到任务的研究员领到任务的起止编号(没有分配到任务的研究员不需要输出)。

请按照分配任务起止编号字典序从小到大的顺序输出。

样例

输入

9 3
1 2 3 4 5 6 7 8 9

输出

1 5
6 7
8 9

输入

3 3
3 1 2

输出

1 1
2 3

输入

9 5
282 594 674 344 122 345 621 850 535

输出

1 2
3 4
5 7
8 8
9 9
说明

样例 1 解释

共有 9 个任务,3 个研究员。

1 个研究员领取了第 1 \sim 55 个任务,耗时分别为 1 2 3 4 5,他完成任务的总时间为 15

2 个研究员领取了第 6 \sim 72 个任务,耗时分别为 6 7,他完成任务的总时间为 13

3 个研究员领取了第 8 \sim 92 个任务,耗时分别为 8 9,他完成任务的总时间为 17

因此项目完成的时间为 17,即第 3 个研究员完成任务的时间。

数据范围

对于 50\% 的数据,满足 1 \le k \le n \le 100

对于 100\% 的数据,满足 1 \le k \le n \le 10^51 \le t_i \le 1000

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 244
通过人数 54
金币数量 0 枚
难度 基础


上一题 下一题