山顶问题

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 peaks.in 输出文件 peaks.out

题目描述
话说某某在cj校运会上异军突起,其实不是偶然,而是有历史原因的。
时光回溯到XX年前,某某为了心中的理想,每天爬N里山路上学。直到有一天mlj(也就是战神Mars)来到这里,被某某所打动,于是决定帮某某一把。从某某家到学校中间的这N里山路在一条直线上,第i里山路的海拔高度为Hi,如果一段相同高度的山路两边都比它低或者是山的边界,那么这段山路将被称之为“山顶”。mlj想这连绵起伏的山路爬着多累啊,于是他决定动用神力,降低某些山路的海拔高度使得山顶的个数不超过K。但mlj不想做得太明显而被某某发现,于是他求助于你。

Your Task
请求出要使“山顶”的数目不超过k,所有山路降低的高度之和至少是多少。

输入文件
第一行两个正整数 N K。
接下来一行N个正整数Hi。

输出文件
一个数,最小的所有山路减少的高度之和。

样例输入
12 1
1 2 3 3 3 2 1 3 2 2 1 2
样例输出
5
样例解释
    * * *     *
  * * * * *   * * *   *
* * * * * * * * * * * *
1 2 3 3 3 2 1 3 2 2 1 2
这是之前山的形状,有3个山顶。
    * * *     -
  * * * * *   - - -   -
* * * * * * * * * * * *
1 2 3 3 3 2 1 1 1 1 1 1
这是mlj用了神力之后(‘-’表示被mlj的神力OOXX掉了),只剩下一个山顶。

数据约定
100% K<=25 1<=Hi<=1000000
90% N<=1000
100% N<=100000