蓝桥杯青少组C++编程国赛题:金箍棒。
题目描述:
淘气的悟空变出了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根相邻的金箍棒高度变为相同
样例输入:
32 361
样例输出: 3