#O3372. LQ.蓝桥杯.十三届.国赛.编程题..05.金箍棒

LQ.蓝桥杯.十三届.国赛.编程题..05.金箍棒

题目描述

淘气的悟空变出了 NN 根高度各不相同的金箍棒(11 \le 高度 1000\le 1000),并排列成一排。悟空可以对每根金箍棒施法,让金箍棒高度变短或者变长,但每一次施法只能使一根金箍棒变短 1 个高度或者变长 1 个高度。

现在悟空想通过施法将 KKKNK \le N)根相邻的金箍棒高度变为相同,且要求施法的次数最少,请你帮助悟空计算出最少需要施法几次可以使 KK 根相邻的金箍棒高度变为相同。

例如:N=3,K=2,3根金箍棒初始高度分别为:3,6,1。

第一次对高度为 3 金箍棒施法变长 1 个高度,变为 4 ;

第二次对高度为 6 金箍棒施法变短 1 个高度,变为 5 ;

第三次对高度为 4 金箍棒施法变长 1 个高度,变为 5 ;

2 根相邻的金箍棒高度变为相同,最少施法 3 次。

输入格式

第一行输入两个正整数 NNKK (1KN100001 \le K \le N \le 10000),NN 表示金箍棒的根数,KK 表示需要将K根相邻的金箍棒高度变为相同,两个整数之间以一个空格隔开

第二行输入 NN 个各不相同的正整数 (11 \le 正整数 1000 \le 1000),表示N根金箍棒的初始高度,NN 个整数之间以一个空格隔开

输出格式

输出一个整数,表示悟空最少需要施法几次可以使 KK 根相邻的金箍棒高度变为相同

样例

3 2
3 6 1
3