1446 - Monotonic

给定一个长度为n的序列C1, C2…Cn,我们称C的单调序列就是把它改成一个严格单调递增的序列D1,D2..Dn(D1D2>..>Dn),同时我们定义它的代价就是|D1-C1|+|D2-C2|…|Dn-Cn|.这个问题你是不是看得非常眼熟呢? 下面请考虑这个问题的加强版把.请你把这个长度为n的序列分成m段,其中要求将每段改成一个单调序列,同时要求代价和最小.比如说1,2,3,2,1就是一个满足要求2段单调序列(1,2,3),(2,1),而将1,1,1,1改成2段单调序列的最优的方案就是(1,2),(2,1),它的代价就是2.

输入

第1行2个数n, m.接下来n行,每行一个数,按顺序给出C1, C2…Cn.

输出

一个数,即最小的代价和.

样例

输入

6 1
1
2
3
3
2
1

输出

9

提示

30%的数据, n<=100. 20%的数据, m=1. 100%的数据,n<=2000, m<=min{n,10},Ci<=10000.

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题