60分求调
查看原帖
60分求调
1139270
herdzq楼主2024/9/15 22:40
#include<bits/stdc++.h>
using  namespace std;
int n;
int x[100010];
bool check(int mid){
	long long minn=INT_MAX;
	long long idx=1;
	 while(idx<=n){
		 long long  res=1;
		 for(int i=idx+1;i<=n&&x[i]-1==x[i-1];i++){
			 idx++;
			 res++;
		 }
		 minn=min(minn,res);
		 idx++;
	 }
	 return minn>=mid;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf("%d",&x[i]);
	}
	sort(x+1,x+1+n);
   long long l=1;
	long long  r=n;
	while(l<r){
		int mid=(l+r+1)/2;
		if(check(mid)){
			l=mid;
		}
		else r=mid-1;
	}
	cout<<l;
	return 0;
}
2024/9/15 22:40
加载中...