SZ#G6DP01. 【GESP强化 六级】团队合作

提交3 通过1
通过率33.3%
时间限制2000ms
内存限制256MiB
    ID: 11067 传统题 2000ms 256MiB 尝试: 3 已通过: 1 难度: 普及+/提高- 上传者: 标签>GESPGESP强化C++c++编程题简单序列型DP一维DP连续分段3星

题目描述

在刘老师最喜欢的节日里,他想要给他的朋友们赠送一些礼物。由于他并不擅长包装礼物,他想要获得他的奶牛们的帮助。你可能能够想到,奶牛们本身也不是很擅长包装礼物,而刘老师即将得到这一教训。

刘老师的 NN 头奶牛(1N1041\le N\le 10^4)排成一行,方便起见依次编号为 1N1\dots N。奶牛 ii 的包装礼物的技能水平为 sis_i。她们的技能水平可能参差不齐,所以刘老师决定把他的奶牛们分成小组。每一组可以包含任意不超过 KK 头的连续的奶牛(1K1031\le K\le 10^3),并且一头奶牛不能属于多于一个小组。由于奶牛们会互相学习,这一组中每一头奶牛的技能水平会变成这一组中水平最高的奶牛的技能水平。

请帮助刘老师求出,在他合理地安排分组的情况下,可以达到的技能水平之和的最大值。

输入格式

输入的第一行包含 NNKK。以下 NN 行按照 NN 头奶牛的排列顺序依次给出她们的技能水平。技能水平是一个不超过 10510^5 的正整数。

输出格式

输出刘老师通过将连续的奶牛进行分组可以达到的最大技能水平和。

7 3
1
15
7
9
2
5
10
84
3 2
26 17 16
68
4 4
25 4 30 17
120

说明/提示

在这个例子中,最优的方案是将前三头奶牛和后三头奶牛分别分为一组,中间的奶牛单独成为一组(注意一组的奶牛数量可以小于 KK)。这样能够有效地将 77 头奶牛的技能水平提高至 15151515151599101010101010,和为 8484