题解
2025-04-09 17:14:08
发布于:浙江
14阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,c,a[100005],l,r,m;
bool judge(int x)
{
int s=1;
int h=1,t=2;
while(s<c&&t<=n)
{
if(a[t]-a[h]>=x) s++,h=t,t++;
else t++;
}
return s>=c;
}
int main(){
cin>>n>>c;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n);
l=1;r=a[n];
m=l+r>>1;
while(l<r)
{
if(judge(m)) l=m;
else r=m-1;
m=l+r+1>>1;
}
cout<<l;
return 0;
}
这里空空如也
有帮助,赞一个