感觉思路挺清晰的,为什么只有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;
}