手册校对排班

普及-⏱ 1000ms💾 256MB#P3166🏷️ 二分贪心

题目描述

装订车间印好了 $m$ 本手册,按 $1 \sim m$ 顺序排列,第 $i$ 本有 $a_i$ 页。 车间要把这些手册分给 $k$ 名学徒校对:一本手册不能拆给两个人;每个人分到的手册编号必须连续。 所有人同时开工,速度相同,完工时间取决于分到页数最多的人。

请设计一种分配方案,使完工时间最短(即最大化被最小化的那个人分到的页数最大值最小)。 输出每个人的手册区间;若有多解,让靠前的学徒尽量少拿页数。

输入格式

第一行两个整数 $m, k$($k \le m$); 第二行 $m$ 个整数,第 $i$ 个表示第 $i$ 本手册的页数。

输出格式

共 $k$ 行,第 $i$ 行两个整数:第 $i$ 名学徒分到的起始编号与终止编号(从小到大排列)。

数据范围

$$1 \le k \le m \le 500,\quad 1 \le a_i \le 10^4$$

样例输入 #1
9 3
1 2 3 4 5 6 7 8 9
样例输出 #1
1 5
6 7
8 9
样例输入 #2
5 5
3 1 4 1 5
样例输出 #2
1 1
2 2
3 3
4 4
5 5