#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pub push_back
#define pob pop_back
#define mpa make_pair
#define endl '\n'
#define BIT(i) ((1 << i))
void maximize(int &x, int y)
{
if(x < y) x = y;
}
const int maxn = 5e5 + 5;
int n;
int sum[maxn] , pre[maxn];
int a[maxn];
void solve(){
cin >> n;
for(int i=1; i<=n; i++){
char x;
cin >> x;
int tmp = int(x) - int('0');
a[i] = tmp;
sum[i] = sum[i - 1] + (tmp ^ 1);
}
for(int i=1; i<=n; i++){
if(a[i] == 1)
{
int j = i - 1;
while(j >= 0)
{
if(a[j] == 1) break;
pre[sum[j]] = i;
j--;
}
}
}
int res = n - sum[n];
for(int val=1; val<=sum[n]; val++)
{
int nxt = pre[val];
if(nxt == 0) break;
int ans = 0;
while(sum[n] - sum[nxt] >= val)
{
if(pre[sum[nxt] + val] == 0)
{
ans++;
break;
}
ans++;
nxt = pre[sum[nxt] + val];
}
if(ans == 0) break;
maximize(res , ans + val * (ans + 1));
}
cout << res;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
#define code code
// freopen("code.INP","r",stdin);
// freopen("code.OUT","w",stdout);
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwdWIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgbXBhIG1ha2VfcGFpcgojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIEJJVChpKSAoKDEgPDwgaSkpCnZvaWQgbWF4aW1pemUoaW50ICZ4LCBpbnQgeSkKewogICAgaWYoeCA8IHkpIHggPSB5Owp9CmNvbnN0IGludCBtYXhuID0gNWU1ICsgNTsKaW50IG47CmludCBzdW1bbWF4bl0gLCBwcmVbbWF4bl07CmludCBhW21heG5dOwoKdm9pZCBzb2x2ZSgpewogICAgY2luID4+IG47CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBjaGFyIHg7CiAgICAgICAgY2luID4+IHg7CiAgICAgICAgaW50IHRtcCA9IGludCh4KSAtIGludCgnMCcpOwogICAgICAgIGFbaV0gPSB0bXA7CiAgICAgICAgc3VtW2ldID0gc3VtW2kgLSAxXSArICh0bXAgXiAxKTsKCiAgICB9CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBpZihhW2ldID09IDEpCiAgICAgICAgewogICAgICAgICAgICBpbnQgaiA9IGkgLSAxOwogICAgICAgICAgICB3aGlsZShqID49IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGFbal0gPT0gMSkgYnJlYWs7CiAgICAgICAgICAgICAgICBwcmVbc3VtW2pdXSA9IGk7CiAgICAgICAgICAgICAgICBqLS07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpbnQgcmVzID0gbiAtIHN1bVtuXTsKICAgIGZvcihpbnQgdmFsPTE7IHZhbDw9c3VtW25dOyB2YWwrKykKICAgIHsKICAgICAgICBpbnQgbnh0ID0gcHJlW3ZhbF07CiAgICAgICAgaWYobnh0ID09IDApIGJyZWFrOwogICAgICAgIGludCBhbnMgPSAwOwogICAgICAgIHdoaWxlKHN1bVtuXSAtIHN1bVtueHRdID49IHZhbCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKHByZVtzdW1bbnh0XSArIHZhbF0gPT0gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYW5zKys7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBhbnMrKzsKICAgICAgICAgICAgbnh0ID0gcHJlW3N1bVtueHRdICsgdmFsXTsKICAgICAgICB9CiAgICAgICAgaWYoYW5zID09IDApIGJyZWFrOwogICAgICAgIG1heGltaXplKHJlcyAsIGFucyArIHZhbCAqIChhbnMgKyAxKSk7CiAgICB9CiAgICBjb3V0IDw8IHJlczsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgICNkZWZpbmUgY29kZSBjb2RlCi8vICAgIGZyZW9wZW4oImNvZGUuSU5QIiwiciIsc3RkaW4pOwovLyAgICBmcmVvcGVuKCJjb2RlLk9VVCIsInciLHN0ZG91dCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0KCg==