P0881

[Usaco2005 jan]Naptime 午睡时间

[Usaco2005 jan]Naptime 午睡时间

贝茜是一只非常缺觉的奶牛。她的一天被平均划分为 NN 个首尾相接、循环排列的时间段。她必须从中选择恰好 BB 个时间段睡觉,这些时间段不必连续。

每个时间段 ii 都有一个固定的睡眠效用值 UiU_i。如果贝茜在该时间段内已经入睡,就能获得相应的效用。借助闹钟,她可以自由选择在哪些时间段睡觉,但只能在时间段的边界处入睡或醒来。

每当贝茜开始一段新的连续睡眠时,该睡眠段的第一个时间段会用于入睡,因此不能获得这个时间段的效用。由于一天中的时间段首尾循环相连,如果贝茜在时间段 NN 和时间段 11 都睡觉,那么它们属于同一段连续睡眠,时间段 11 不会被视为新的入睡阶段。

请计算贝茜能够获得的最大睡眠效用总和。

输入格式

第一行包含两个以空格分隔的整数 NN 和 BB,分别表示一天中的时间段数量和贝茜必须用于睡觉的时间段数量。

接下来 NN 行,第 ii 行包含一个整数 UiU_i,表示时间段 ii 的睡眠效用值。

输出格式

输出一个整数,表示贝茜能够获得的最大睡眠效用总和。

样例输入

5 3
2
0
3
1
4

样例输出

6

样例解释

选择时间段 44、55、11 睡觉。时间段 44 是这段连续睡眠的入睡阶段,不计效用。由于时间段首尾循环相连,时间段 55 和时间段 11 分别贡献 44 和 22 的效用,因此总效用为 66。

数据范围

  • 3≤N≤38303\le N\le 3830;
  • 2≤B<N2\le B<N;
  • 0≤Ui≤2×1050\le U_i\le 2\times 10^5。

来源与许可

本题为 USACO 2005 January 试题「Naptime 午睡时间」,题面与测试数据整理自 BZOJ。

样例 1

输入

5 3
2
0
3
1
4

输出

6