#222217. [2022第十三届蓝桥杯国赛T5] 金箍棒

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

题目描述

淘气的悟空变出了 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 根相邻的金箍棒高度变为相同。

样例

3 2
3 6 1
3