军训选人问题(续)
Description
很多学校在每年的九月份新学期开学时对新生需要进行军训,我们学校也一样,今年也开始军训了,第一天,总教官把所有新生都召集在一个很大的操场上,把所有学生从1开始依次编号,他要从中选一部分身高符合要求的人参加护旗方队,为了便于管理,他决定符合要求的学生的编号是连续的,为了方队看上去美观和整齐,他现在想在入选的学生中身高差尽可能小,即总教官的要求是给定被选中的同学的人数,使得在选中的同学中身高的差尽量小。亲爱的同学们,如果你们想帮助总教官,那么你就帮他写个程序,计算一下符合要求的学生身高差最小最多到底是多少?假定学生人数为n(1<=n<=100000),身高h(140<=h<=250),身高的单位是厘米而且是整数。
Input
输入有两行,第一行是学生的总人数n和方队需要的同学人数m(1<=m<=1000),另一行是所有学生的身高。
Output
输出也有两行,第一行的格式是:“From=XX,To=XX”,第二行的格式是:“MinDiff =XX”。本问题有多组测试数据。如果有多组符合要求的解,那么输出所有符合条件的解中起始编号最小的解,如果没有符合要求的解,则输出“No solution !”。
Sample Input
11 4
165 180 187 160 170 180 153 175 190 178 163
11 2
165 180 187 160 170 180 153 175 190 178 163
Sample Output
From=1,To=4
MinDiff=27
From=2,To=3
MinDiff=7
#include<bits/stdc++.h>
using namespace std;
int a[100001<