求助orz
查看原帖
求助orz
1309832
2Douz楼主2024/9/1 15:15

感觉思路挺清晰的,为什么只有70

#include<bits/stdc++.h>
using namespace std;
#define N 100005
int d[N];

struct data{
	int minn,maxn;
	data(){
		minn=N;
		maxn=-1;
	}
}ha[N*2];

int main(){
	int n,sum1=0,sum0=0;
	scanf("%d",&n);
	int x;
	for(int i=1;i<=n;i++){
		scanf("%d",&x);
		sum1+=(x==1);
		sum0+=(x==0);
		d[i]=sum1-sum0+n;
		ha[d[i]].minn=min(ha[d[i]].minn,i);
		ha[d[i]].maxn=i;
	}
	int ans=-1;
	for(int i=1;i<=2*n;i++){
		ans=max(ha[i].maxn-ha[i].minn,ans);
	}
	printf("%d",ans); 
	return 0;
}
2024/9/1 15:15
加载中...