D. 序列最小差值(mindiff)

内存限制:256 MiB 时间限制:1000 ms 输入文件: mindiff.in 输出文件: mindiff.out
题目类型:传统 评测方式:文本比较

题目描述

小途给你几个整数。你需要从中恰好选择k个整数( 2<k<n ),并按原来的顺序将它们组成一个新序列。定义新序列的「差值」为新序列中相邻元素差的绝对值之和。例如n个整数为:{1,2,5,4,3}当k=3时,可以选择一个新序列{1,5,3},新序列的「差值」为:|1-5|+|5-3|=4+2=6。

你的任务是找到可以得到的差值最小的新序列,并输出这个最小差值。

输入格式

第一行输入两个正整数n和k,表示原始整数序列的长度和需要选择整数的数量。

第二行以空格隔开输入n个整数 a_1,a_2,...,a_n ,表示原始整数序列。

输出格式

输出—个整数,表示差值最小的新序列的最小差值。

样例

样例输入1

5 3
1 2 5 4 3

样例输出1

2

样例输入2

5 3
3 6 8 -2 5

样例输出2

4

数据范围与提示

对于20%的数据,满足 n≤5,—100<a_i≤100

对于另外30%的数据,满足 n≤20,-10^6≤a_i≤10^6

对于100%%的数据,满足 1≤n≤300,-10^9<a_i≤10^9

样例1解释

可以选出{1,2,3},新序列的差值为|1-2|+|2-3|=1+1=2。

找不到差值更小的合法序列了。

样例2解释

可以选出{3,6,5},新序列的差值为|3-6|+|6-5|=3+1=4。

找不到差值更小的合法序列了。