2703 - 长跑比赛

题目描述

某班级的班主任要组织一次长跑比赛,为了公平起见,他决定将已经排成一排的 N 位同学,按顺序分成 M 组进行比赛。每组学生的总跑步成绩为该组所有学生的跑步成绩之和。

分组方式为:按照当前排队的顺序,从前向后,选取连续的若干位同学,作为第一组的选手。

第一组选定后,让第一组的同学出列,继续从前向后选取连续的若干位同学,作为第二组的选手。

以此类推,直到将选手分成正好 M

为了让比赛更加的公平,班主任调取了每位同学本年度的跑步比赛成绩的平均分。他希望各组的实力差尽可能的小。因此,他的分组目标是:寻求一个分组方案,使得所 N 位同学按上述规则分成 M 组后,组内选手成绩平均分总和最大的那一组的成绩和,在所有的分组方案中,是最小的

请你编程,帮助老师计算出,组内选手成绩平均分总和最大值,最小是多少?

输入

第一行包含两个整数 NM,用单个空格隔开。

接下来 N 行,第 i 行读入一个整数 A_i,表示第 i 位学生的年度跑步平均分。

输出

输出一个整数,表示合理分组后,组内选手成绩平均分总和最大组的最小值。

样例

输入

7 5
2
8
6
1
4
9
3

输出

10

输入

10 3
3
5
10
1
20
9
12
18
9
30

输出

39

输入

20 8
10
32
43
112
144
110
30
20
11
131
90
12
87
49
27
48
45
19
98
37

输出

189
说明

样例 1 解释

假设将前两位学生分为一组 (2+8),第三、第四位学生分为一组 (6+1),接下来三位学生分别作为单独的一组 (4), (9), (3) ,这样分数总和最大组的成绩为 10

其他任何分组方案的最大组成绩都会更大。

数据范围与约定

对于 20\% 的数据,保证 1 \leq N \leq 201 \le M \le 10

对于 100\% 的数据,保证 1 \leq N \leq 1000001 \leq M \leq N1 \le A_i \le 10000

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


上一题 下一题