hhh
2023-07-24 16:48:50
发布于:江苏
7阅读
0回复
0点赞
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int n,c,r;
int a[100005];
void f(int left,int right){
if(left>right) return;
int mid=(left+right)/2;
int cnt=1;
int x=1;
for(int i=x+1;i<=n;i++){
if(a[i]-a[x]>=mid){
cnt++;
x=i;
}
}
if(cnt>=c){
r=mid;
f(mid+1,right);
}
else f(left,mid-1);
}
int main(){
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
f(1,a[n]);
cout<<r<<endl;
return 0;
}
这里空空如也
有帮助,赞一个