求助,真奇葩
查看原帖
求助,真奇葩
561309
whl0807楼主2022/11/13 18:19
#include<bits/stdc++.h>
using namespace std;
int n,b[100005],g[100005],ans;
bool nn[100010];
int main()
{
	std::ios::sync_with_stdio(false);
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>nn[i];
	for(int i=1;i<=n;i++)
		if(nn[i]==1)
			b[i]=b[i-1]+1;
		else	
			b[i]=b[i-1];
	for(int i=1;i<=n;i++)
		if(nn[i]==0)
			g[i]=g[i-1]+1;
		else	
			g[i]=g[i-1];
	for(int i=0;i<=n;i++)
	{
		for(int j=i+ans;j<=n;j++)
			if(b[j]-b[i]==g[j]-g[i])ans=max(ans,j-i);
	}
		
	cout<<ans<<endl;
	return 0;
}

思路:前缀和

评测记录

所以,有大佬帮忙解答吗?QAQ

2022/11/13 18:19
加载中...