爆零求助
查看原帖
爆零求助
577834
wan_yy楼主2022/3/22 20:18
#include<iostream>
#include<algorithm>
using namespace std;
int ans=-1,a[100000+10],n,c;
int mid; 
void in(){
	cin>>n>>c;
			for(int i=1;i<=n;i++){
	cin>>a[i];
}
}
bool check(int x){ 
    int now = 1, num = 1;
    for (int i = 2; i <= n; i++){
        if (a[i]-a[now]>=x){
            now=i;
            num++;
        }
    }
    return num>=c;
}
int ef(int l,int r){
	while(l<=r){
		mid=(l+r)/2;
		if(check(mid)){
			ans=max(mid,ans);
			l=mid+1;
		}
		else
			r=mid-1;
	}
	return ans;
}
int main(){
	in();
	sort(a+1,a+1+n);	
	cout<<ef(1,(2<<30));
}

改了很多遍了,还是wr,求助大佬

2022/3/22 20:18
加载中...