求dalao调
查看原帖
求dalao调
906225
Science_Technologygy楼主2023/12/2 21:14
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,q[100005],m[100005],l,r,mid,x;
bool check(int x){
	for(int i=x;i<=n;i++)
		if(q[i]-q[i-x]==x/2)return true;
	return false;
}
signed main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&x);
		if(x==1){
			q[i]=q[i-1]+1;
			m[i]=m[i-1];
		}
		else{
			m[i]=m[i-1]+1;
			q[i]=q[i-1];
		}
	}
	l=0,r=n;
	while(l<=r){
		mid=(l+r)/2;
		if(mid%2==1) mid++;
		//cout<<l<<" "<<r<<" "<<mid<<endl;
		if(check(mid))l=mid+2;
		else r=mid-2;
	}
	printf("%d",r);
   	return 0;
}
2023/12/2 21:14
加载中...