T329337 [2022第十三届蓝桥杯青少年组国赛] 金箍棒
题目背景
第十三届蓝桥杯青少年组国赛2022年5月C++组第5题
题目描述
淘气的悟空变出了 $N$ 根高度各不相同的金箍棒$(1≤高度≤10000)$,并排列成一排。悟空可以对每根金箍棒施法,让金箍棒高度变短或者变长,但每一次施法只能使一根金箍棒变短 $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≤正整数≤10000)$,表示 $N$ 根金箍棒的初始高度,$N$ 个整数之间以一个空格隔开。
输出格式
输出一个整数,表示悟空最少需要施法几次可以使 $K$ 根相邻的金箍棒高度变为相同。