B4298 [蓝桥杯青少年组国赛 2022] 金箍棒
题目背景
为区分各种时间复杂度的做法,本题时间限制下调到 500 毫秒。
题目描述
淘气的悟空变出了 $N$ 根高度各不相同的金箍棒($1 \leq $ 高度 $\leq 1000$),并排列成一排。悟空可以对每根金箍棒施法,让金箍棒高度变短或者变长,但每一次施法只能使一根金箍棒变短 $1$ 个高度或者变长 $1$ 个高度。
现在悟空想通过施法将 $K$($K \leq N$)根相邻的金箍棒高度变为相同,且要求施法的次数最少,请你帮助悟空计算出最少需要施法几次可以使 $K$ 根相邻的金箍棒高度变为相同。
例如:$N=3$,$K=2$,$3$ 根金箍棒初始高度分别为 $3$、$6$、$1$。
- 第一次对高度为 $3$ 的金箍棒施法变长 $1$ 个高度,变为 $4$;
- 第二次对高度为 $6$ 的金箍棒施法变短 $1$ 个高度,变为 $5$;
- 第三次对高度为 $4$ 的金箍棒施法变长 $1$ 个高度,变为 $5$;
$2$ 根相邻的金箍棒高度变为相同,最少施法 $3$ 次。
输入格式
第一行输入两个正整数 $N$、$K$($1 \leq K \leq N \leq 10000$),$N$ 表示金箍棒的根数,$K$ 表示需要将 $K$ 根相邻的金箍棒高度变为相同,两个整数之间以一个空格隔开。
第二行输入 $N$ 个各不相同的正整数($1 \leq$ 正整数$\leq 1000$),表示 $N$ 根金箍棒的初始高度,$N$ 个整数之间以一个空格隔开。
输出格式
输出一个整数,表示悟空最少需要施法几次可以使 $K$ 根相邻的金箍棒高度变为相同。