感觉得恶补二分基础了
#include <bits/stdc++.h>
using namespace std;
int n,c;
int s[100005];
bool j(int x) {
int t=s[0];
int cnt=1;
for(int i=1; i<n; i++) {
if(s[i]-t>=x) {
cnt++;
t=s[i];
if(cnt>=c)
return 1;
}
}
return 0;
}
int main() {
scanf("%d%d",&n,&c);
for(int i=0; i<n; i++)
scanf("%d",&s[i]);
sort(s,s+n);
int l=0,r=s[n-1]-s[0];
while(l<=r) {
int mid=(l+r)/2;
if(j(mid))
l=mid+1;
else
r=mid-1;
}
printf("%d\n",r);
return 0;
}