赛时写的,只有48分:
#include<bits/stdc++.h>
using namespace std;
int n,m,ans=2e9,c=0,a[100010]={};
struct p{
int v;
int id;
}x[100010];
queue<p> q;
bool cmp(p a,p b){
return a.v<b.v;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>x[i].v,x[i].id=i;
sort(x+1,x+n+1,cmp);
for(int i=1;i<=n;i++){
if(a[x[i].id+1]||a[x[i].id-1]) continue;
c++;
a[x[i].id]=1;
q.push(x[i]);
if(c==m){
c--;
a[q.front().id]=0;
ans=min(ans,q.back().v-q.front().v);
q.pop();
}
}
cout<<ans;
}