70WA求调
查看原帖
70WA求调
1041071
ltz761222楼主2024/9/22 21:40

看之前与他的前缀和相等的第一个。

//
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N=1e5+10;
int pre[N<<1];
int a[N],q[N];
int n,ans;
int main ()
{
	scanf ("%d",&n);
	for (int i=1;i<=n;i++)
		scanf ("%d",&a[i]),a[i]=!a[i]?-1:1,q[i]=q[i-1]+a[i];
	for (int i=0;i<=n;i++)
		pre[i]=pre[i+n]=n+1;
	
	for (int i=1;i<=n;i++)
	{
		ans=max(ans,i-pre[q[i]+n]);
		if (pre[q[i]+n]==n+1)
			pre[q[i]+n]=i;
	}
	
	printf ("%d",ans);
	
	return 0;
}

2024/9/22 21:40
加载中...