P9835 [USACO05OPEN] Landscaping G
题目描述
农夫约翰正在做一次艰难的转型,从养山羊改成养奶牛,他的农场,由于是为养山羊而设计的所以有太多的山,为了养牛就必须将它整平。但是,将山整平是件很花钱的工作,所以他要移走尽可能少的土。
由于农场很细长,所以可以用一个 $n$ 和 $n$ 个整数(范围 $[1,10^6]$)组成的二维的数组来表示,如:
```
1 2 3 3 3 2 1 3 2 2 1 2
```
上述农场的侧面图是这样的:
```
* * * *
* * * * * * * * *
* * * * * * * * * * * *
1 2 3 3 3 2 1 3 2 2 1 2
```
一个或是一些连续等高的地面,如果它左边与右边的海拔都比它低的话,就被称为山顶,上面的例子就有三个山顶。 确定如果要使地图上仅有 $k$ 个山顶,至少要移走多少体积的土(每块地面减少一单位海拔需移走一单位的土)。注意,地面的海拔只能被降低不能被升高。 对于例子,如果要减少到只有 $1$ 个山顶,这需要移走 $2+1+1+1=5$ 个单位的土(`-` 表示移走的土):
```
* * * -
* * * * * - - - -
* * * * * * * * * * * *
1 2 3 3 3 2 1 3 2 2 1 2
```
输入格式
第 $1$ 行输入整数 $n$ 和 $k$。
之后 $n$ 行,每行输入一个整数,表示这块地的海拔。
输出格式
如果仅能有 $k$ 个山顶至少要移走多少土。
说明/提示
对于 $100\%$ 的数据,$1 \leq n \leq 10^3$,$1 \leq k \leq 25$。