1 #include <cstdio>
2 #include <iostream>
3 #include <vector>
4 #include <cstring>
5 #include <algorithm>
6 #include <string>
7 #include <map>
8 #include <set>
9 #include <list>
10 #include <cmath>
11 #include <cstring>
12 #include <queue>
13 #include <stack>
14 #include <ctime>
15 #include <complex>
16 #include <random>
17 using namespace std;
18 #define rep(i,a,n) for (int i=a;i<n;i++)
19 #define per(i,a,n) for (int i=n-1;i>=a;i--)
20 #define forn(i,n) for(int i = 0;i<n;i++)
21 #define for1(i,n) for(int i = 1;i<=n;i++)
22 #define pb push_back
23 //#define mp make_p/**/air
24 #define all(x) (x).begin(),(x).end()
25 //#define fi first
26 #define se second
27 #define SZ(x) ((int)(x).size())
28 typedef vector<int> VI;
29 typedef long long ll;
30 typedef long double ld;
31 typedef pair<int,int> PII;
32 typedef pair<ll,ll> PLL;
33 typedef pair<string,string> PSS;
34 typedef unsigned us;
35 typedef unsigned int ui;
36 typedef unsigned long long ull;
37 const ll mod=1e9+9;
38 ll MOD=1e9+7;
39 const ll inf = 2e18;
40 const int maxn = 200005;
41 const int maxa = 300005;
42 ll print_array(ll a[],int t){cout<<"[";for(int i = 0;i<t;i++){cout<<a[i];if(i!=t-1)cout<<", ";}cout<<"]"<<endl;return 0;}
43 ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
44 ll powmod(ll a,ll b) {ll res=1;a%=mod; if(b<0) return -1; for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
45 ll powmod2(ll a,ll b) {ll res=1;a%=MOD; if(b<0) return -1; for(;b;b>>=1){if(b&1)res=res*a%MOD;a=a*a%MOD;}return res;}
46
47 int n;
48 string s;
49 int a[maxn];//前缀和
50 int vis[maxn];
51
52 int main(){
53 cin>>n;
54 cin>>s;
55 memset(vis,-1,sizeof(vis));
56 for(int i = 1;i<=s.length();i++){
57 if(s[i-1] == '0'){
58 a[i] = a[i-1] - 1;
59 }
60 else{
61 a[i] = a[i-1] + 1;
62 }
63 }
64 int maxx = 0;
65 vis[100000] = 0;
66 for(int i = 1;i<=n;i++){
67 if(vis[a[i]+100000] == -1) vis[a[i]+100000] = i;
68 else{
69 maxx = max(maxx,i-vis[a[i]+100000]);
70 }
71 }
72 cout<<maxx<<endl;
73
74
75
76 }