灵能探索
题号:NC24548
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

有编号为1至n的n个高阶圣堂武士一起去探索圣灵石,现在把他们分成k(k <= n)个小组,每个小组完成一项探索任务。分组时,如果编号为i的高阶圣堂武士与编号为j的高阶圣堂武士分在同一组(i<j),则他们之间的所有高阶圣堂武士(第i+1,i+2,…,j-1个)也必须在同一个小组中。
每个高阶圣堂武士都拥有一定量的灵能,一个小组内所有高阶圣堂武士的灵能和越小,途中可能越危险。为了确保每个高阶圣堂武士的安全,要求分组时,使得所有小组中,灵能和最小的那个小组的所有高阶圣堂武士的灵能和尽量大。
依次告诉你每个高阶圣堂武士的灵能,如何分组呢?

输入描述:

第1行有二个正整数n和k,互相之间以一个空格分隔。

第2行有n个正整数(互相以一个空格分隔),表示n个高阶圣堂武士的灵能值。其中第j个整数表示第j个高阶圣堂武士的灵能值。

输出描述:

只有1行,该行只有一个整数,表示最佳划分方案中,最弱的小组中,所有高阶圣堂武士的灵能值之和。
示例1

输入

复制
5 2
5 2 1 6 9

输出

复制
9

备注:

n<=100000,每个高阶圣堂武士的灵能<=100000