若最后一段以位置 i 结尾、上一段结尾在 t−1 处(即最后一段是 [t,i]),则该段贡献为 x∈[t,i]minax。 设 dp[j][i] 表示将前 i 个数分成 j 段的最大和,则有
小C在玩一个游戏。他手下有n名士兵,第i名士兵的能力值为ai。
他需要将这n名士兵划分成k个军团,满足:
对第j个军团,其战力值mj为该军团内能力最低的士兵能力值。
小C想要最大化所有军团战力值之和:S=∑j=1kmj
请你计算能够获得的最大总战力值S。
第一行输入两个整数n和k(1≤k≤min(n,100),1≤n≤104),分别表示士兵数n和要划分的军团数k。
第二行输入n个整数a1,a2,...,an(1≤ai≤100),表示每名士兵的能力值。
输出一个整数,表示将n名士兵划分成k个军团后,所有军团战力值之和的最大值。
输入
5 2
1 3 2 4 5
输出
6
说明
在第一个样例中:
最优划分为军团{1,3,2,4}和军团{5};
两个军团的最小能力值分别为1和5;
总能力值之和为1十5=6。
输入
5 3
5 1 2 4 3
输出
9
说明
在第二个样例中:
最优划分为军团{5},{1,2,4},{3};
三个军团的最小能力值分别为5,1,3;
总能力值之和为5+1+3=9。