代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=100005;
long long n,c,nums[maxn];
bool check(int mid){
int p=nums[0],cnt=1,ok=0;
for(int i=1;i<n;i++) {
if(nums[i]>=p+mid){
cnt++;
if(cnt>=c) {
ok=1;
break;
}
}
}
return ok;
}
int main(){
long long s=0,ans=0;
cin>>n>>c;
for(int i=0;i<n;i++) cin>>nums[i];
sort(nums,nums+n);
long long l=0,r=nums[n-1];
while(l<=r){
long long mid=(l+r)/2;
if(check(mid)){
ans=mid;
l=mid+1;
}
else r=mid-1;
}
cout<<ans<<endl;
return 0;
}
求加14行