90求条
查看原帖
90求条
1423201
DavidFisher楼主2025/7/31 09:08

最后一点错了,玄关

#include<bits/stdc++.h>
using namespace std;
int n,c;
int a[100005];
int b;
bool check(int x){
    int a1=a[1],sum=1;
    for (int i=2;i<=n;i++){
	    if(a[i]-a1>=x) 
	    {
	        sum++;
	        a1=a[i]; 
	        if(sum==c) return 1; 
	    }	
	}
    return 0;
}
int main()
{
	cin>>n>>c;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+1+n);
	b=n-c;
	int l=1,r=n,mid;
	int ans;
	while(l<=r){
		mid=(l+r)/2;
		if(check(mid)==1){
			ans=max(ans,mid);
			l=mid+1;
		}
		else r=mid-1;
	}
    cout<<ans;
	return 0;
}

2025/7/31 09:08
加载中...