题目
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int n,m;
int a[maxn];
bool check(int k){
int x=1,sum=0;
for(int i=2;i<=n;i++){
if(a[i]-a[i-1]< k){
x++;
}
else{
sum = a[i];
}
}
return x<=m;
}
int main(){
cin>>n>>m;
int r=0,l=INT_MAX;
for(int i=1;i<=n;i++){
cin>>a[i];
r+=a[i];
if(i>1){
l=min(a[i]-a[i-1],l);
}
}
sort(a+1,a+1+n);
while (l<=r){
int mid = l+(r-l)/2;
if (check(mid)){
l=mid+1;
}
else{
r = mid -1;
}
}
cout<<r ;
return 0;
}