#11559. 金箍棒【蓝桥杯】

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Turing001

题目描述

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

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

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

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

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

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

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

输入格式

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

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

输出格式

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

样例

样例输入

3 2
3 6 1

样例输出

3

数据范围与提示

13届蓝桥杯C++国赛试题 E