#4689. 金箍棒*(2022年5月国赛)

金箍棒*(2022年5月国赛)

Background

第五题(难度系数 6,满分80分)

编程实现:金箍棒

题目描述:

淘气的悟空变出了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

评分标准:

20分:能正确输出一组数据;

20分:能正确输出两组数据;

20分:能正确输出三组数据;

20分:能正确输出四组数据。

Limitation

1s, 1024KiB for each test case.