#CSES1085. 数组划分

数组划分

题目背景

翻译自 CSES-1085 题。

题目描述

给定一个包含 nn 个正整数的数组,任务是将数组划分为 kk 个子数组,使得每个子数组的和的最大值尽可能小。

本题中子数组定义为:任意给定一个数组下标 l,r(1lrn)l,r(1\le l\le r\le n),得到的区间 [l,r][l,r] 中的数组元素 al,al+1,,ara_{l},a_{l+1},\cdots,a_r。即可以理解成连续子序列。

输入格式

第一行输入两个整数 nnkk,分别代表数组的大小和需要划分的子数组个数。

第二行输入 nn 个整数 x1,x2,...,xnx_1, x_2, ..., x_n,代表数组的值。

输出格式

输出一行一个整数表示答案。

样例

5 3
2 4 7 3 5
8

说明/提示

样例解释

一个最优的划分为 [2,4],[7],[3,5][2,4],[7],[3,5],每个子数组的和为 6,7,86,7,8。最大的和是 88

数据范围

1kn2105,1xi1091 \le k \leq n \le 2\cdot 10^5,1 \leq x_i \le 10^9