1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int N=100101; 5 int n,pre[N],num0,num1,a[N*3],ans; 6 char c[N]; 7 int main(){ 8 scanf("%d",&n); 9 scanf("%s",c); 10 for (int i=0;i<n;i++){ 11 if (c[i]=='0'){ 12 num0++; 13 pre[i]=pre[i-1]+1; 14 if (a[pre[i]+N]==0){ 15 a[pre[i]+N]=i; 16 }else{ 17 ans=max(ans,i-a[pre[i]+N]); 18 } 19 } 20 if (c[i]=='1'){ 21 num1++; 22 pre[i]=pre[i-1]-1; 23 if (a[pre[i]+N]==0){ 24 a[pre[i]+N]=i; 25 }else{ 26 ans=max(ans,i-a[pre[i]+N]); 27 } 28 } 29 if (pre[i]==0){ 30 ans=max(ans,i+1); 31 } 32 } 33 printf("%d %d\n",ans,2*min(num0,num1)); 34 }
2019牛客暑期多校训练营(第三场)
猜你喜欢
转载自www.cnblogs.com/Accpted/p/11246042.html
今日推荐
周排行