题目大意:
首先输入一个 n n n 和 k k k,然后输入 k k k 个数,求最大和最小的差值尽可能小。输入含多组数据。
题目思路:
我们可以先把所有数都排序好,然后在一个个枚举即可。
注意点:
- 本题无需开
long long
。 - 每组数据过后记得换行。
代码:
#include<bits/stdc++.h>
using namespace std;
const int inf=INT_MAX;
int a[20005];
int main(){
int t;
cin>>t;
while(t--){
int n,k;
cin>>n>>k;
int ans=inf;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=n-k+1;i++) ans=min(a[i+k-1]-a[i],ans);
cout<<ans<<"\n"; // 输出答案,记得换行
}
return 0;
}