死循环求助
查看原帖
死循环求助
439327
南瓜桐楼主2021/11/20 16:51
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int m,n;
int a[100001];
bool findd(int x){
	int num=0;
	for(int i=1;i<=n;i++){
		if(a[i]<a[i-1]+x){
			continue;
		}else{
			++num;
		}
	}
	if(num<m){
		return false;
	}else{
		return true;
	}
	
}
int main(){
	cin>>n>>m;
	int maxx=0;	
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		maxx=max(a[i],a[i-1]);
	}
	sort(a+1,a+1+n);
	int l=1,r=maxx;
	int ans=0;
	while(l<r){
		int mid=(l+r)/2;
		if(findd(mid)==true){
//			cout<<l<<' '<<mid<<' '<<r<<endl;
			l=mid+1;
			ans=mid;
		}else{
//			cout<<l<<' '<<mid<<' '<<r<<endl;
			r=mid-1;
		}
	}
	cout<<ans;
	return 0;
}
2021/11/20 16:51
加载中...