#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
typedef int ll;
bool cmp(ll a,ll b){
return a < b;
}
bool check(ll* num,ll n,ll c,ll mid){
int t=0,sum=1;
for(int i=0;i<n-1;i++){
if((t+num[i+1]-num[i])<mid){
t+=num[i+1]-num[i];
}else{
sum++;
t = 0;
}
}
if(sum<c) return true;//mid大
else return false;
}
int main(){
int n,c;
ll num[100000+10];
cin >> n >>c;
for(int i=0;i<n;i++){
scanf("%d",&num[i]); //大量数据,使用scanf输入,尽量不使用cin
}
sort(num,num+n);
ll l=0,h=num[n-1],mid;
while(l<=h){
mid = (l+h)/2;
if(check(num,n,c,mid)){h=mid-1;}
else l=mid+1;
}
cout << h;
return 0;
}
Aggressive cows
最新推荐文章于 2023-03-03 19:58:35 发布