#406. 任务安排

任务安排

题目描述

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

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

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

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

输入格式

输入 2 个整数 nk

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

输出格式

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

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

9 5
282 594 674 344 122 345 621 850 535
1 2
3 4
5 7
8 8
9 9