#include <bits/stdc++.h>
using namespace std;
int main() {
const bool exhaustive_test = false, generate_test = true;
using ll = long long;
using ivector = vector<int>;
using solver = function<void(int,int,ll,ll&)>;
const ll inf = numeric_limits<ll>::max();
int N; cin >> N; ivector A(N), ones(N);
const solver brute_force = [&](int k, int n, ll p, ll &ans) {
if (k == n)
ans = p;
else {
int i = ones[k], t = k+1, l = i-1, r = i+1;
for (ll u = p+1; (l >= 0 or r < N) and u < ans; --l, ++r, ++u) {
if (l >= 0 and A[l] == 0)
A[l] = -1, brute_force(t,n,u,ans), A[l] = 0;
if (r < N and A[r] == 0 and u < ans)
A[r] = -1, brute_force(t,n,u,ans), A[r] = 0; } } };
const solver greedy = [&](int k, int n, ll p, ll &ans) {
if (k == n)
ans = p;
else {
int i = ones[k], t = k+1, l = i-1, r = i+1, u = p+1, v = p+1;
while (l >= 0 and A[l] != 0 and u < ans)
--l, ++u;
if (l >= 0 and A[l] == 0 and u < ans)
A[l] = -1, greedy(t,n,u,ans), A[l] = 0;
while (r < N and A[r] != 0 and v < ans)
++r, ++v;
if (r < N and A[r] == 0 and v < ans)
A[r] = -1, greedy(t,n,v,ans), A[r] = 0; } };
if (exhaustive_test) {
for (int U = 1<<N, s = 1; s < U; ++s)
if (2*__builtin_popcount(s) <= N) {
ll b = inf, g = inf; int n = 0;
for (int p = 1, i = 0; i < N; ++i, p <<= 1)
if (A[i] = 0, s&p)
A[i] = 1, ones[n++] = i;
if (brute_force(0,n,0,b), greedy(0,n,0,g), b != g) {
for (int i = 0; i < N; ++i)
cout << A[i] << ' ';
cout << endl;
cout << "brute_force = " << b << endl;
cout << "greedy = " << g;
return 0; } }
cout << "Passed"; }
else {
if (generate_test) {
random_device device;
mt19937_64 rng(device());
uniform_int_distribution<int> uniform(1,N/2);
const auto b = A.begin(), e = A.end();
fill(b,b+uniform(rng),1), shuffle(b,e,rng), cout << N << endl << A[0];
for (int i = 1; i < N; ++i)
cout << ' ' << A[i];
cout << endl; }
else {
for (int i = 0; i < N; ++i)
cin >> A[i]; }
int n = 0;
for (int i = 0; i < N; ++i)
if (A[i] == 1)
ones[n++] = i;
ll ans = inf;
greedy(0,n,0,ans), cout << ans; }
return 0; }
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWNvbnN0IGJvb2wgZXhoYXVzdGl2ZV90ZXN0ID0gZmFsc2UsIGdlbmVyYXRlX3Rlc3QgPSB0cnVlOwoJdXNpbmcgbGwgPSBsb25nIGxvbmc7Cgl1c2luZyBpdmVjdG9yID0gdmVjdG9yPGludD47Cgl1c2luZyBzb2x2ZXIgPSBmdW5jdGlvbjx2b2lkKGludCxpbnQsbGwsbGwmKT47Cgljb25zdCBsbCBpbmYgPSBudW1lcmljX2xpbWl0czxsbD46Om1heCgpOwogICAgaW50IE47IGNpbiA+PiBOOyBpdmVjdG9yIEEoTiksIG9uZXMoTik7Cgljb25zdCBzb2x2ZXIgYnJ1dGVfZm9yY2UgPSBbJl0oaW50IGssIGludCBuLCBsbCBwLCBsbCAmYW5zKSB7CiAgICAgICAgaWYgKGsgPT0gbikKICAgICAgICAgICAgYW5zID0gcDsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaW50IGkgPSBvbmVzW2tdLCB0ID0gaysxLCBsID0gaS0xLCByID0gaSsxOwogICAgICAgICAgICBmb3IgKGxsIHUgPSBwKzE7IChsID49IDAgb3IgciA8IE4pIGFuZCB1IDwgYW5zOyAtLWwsICsrciwgKyt1KSB7CiAgICAgICAgICAgICAgICBpZiAobCA+PSAwIGFuZCBBW2xdID09IDApCiAgICAgICAgICAgICAgICAgICAgQVtsXSA9IC0xLCBicnV0ZV9mb3JjZSh0LG4sdSxhbnMpLCBBW2xdID0gMDsKICAgICAgICAgICAgICAgIGlmIChyIDwgTiBhbmQgQVtyXSA9PSAwIGFuZCB1IDwgYW5zKQogICAgICAgICAgICAgICAgICAgIEFbcl0gPSAtMSwgYnJ1dGVfZm9yY2UodCxuLHUsYW5zKSwgQVtyXSA9IDA7IH0gfSB9OwoJY29uc3Qgc29sdmVyIGdyZWVkeSA9IFsmXShpbnQgaywgaW50IG4sIGxsIHAsIGxsICZhbnMpIHsKCQlpZiAoayA9PSBuKQoJCQlhbnMgPSBwOwoJCWVsc2UgewoJCQlpbnQgaSA9IG9uZXNba10sIHQgPSBrKzEsIGwgPSBpLTEsIHIgPSBpKzEsIHUgPSBwKzEsIHYgPSBwKzE7CgkJCXdoaWxlIChsID49IDAgYW5kIEFbbF0gIT0gMCBhbmQgdSA8IGFucykKCQkJCS0tbCwgKyt1OwoJCQlpZiAobCA+PSAwIGFuZCBBW2xdID09IDAgYW5kIHUgPCBhbnMpCgkJCQlBW2xdID0gLTEsIGdyZWVkeSh0LG4sdSxhbnMpLCBBW2xdID0gMDsKCQkJd2hpbGUgKHIgPCBOIGFuZCBBW3JdICE9IDAgYW5kIHYgPCBhbnMpCgkJCQkrK3IsICsrdjsKCQkJaWYgKHIgPCBOIGFuZCBBW3JdID09IDAgYW5kIHYgPCBhbnMpCgkJCQlBW3JdID0gLTEsIGdyZWVkeSh0LG4sdixhbnMpLCBBW3JdID0gMDsgfSB9OwoJaWYgKGV4aGF1c3RpdmVfdGVzdCkgewogICAgICAgIGZvciAoaW50IFUgPSAxPDxOLCBzID0gMTsgcyA8IFU7ICsrcykKICAgICAgICAgICAgaWYgKDIqX19idWlsdGluX3BvcGNvdW50KHMpIDw9IE4pIHsKICAgIAkJCWxsIGIgPSBpbmYsIGcgPSBpbmY7IGludCBuID0gMDsKCQkJCWZvciAoaW50IHAgPSAxLCBpID0gMDsgaSA8IE47ICsraSwgcCA8PD0gMSkKICAgIAkJCQlpZiAoQVtpXSA9IDAsIHMmcCkKICAgIAkJCQkJQVtpXSA9IDEsIG9uZXNbbisrXSA9IGk7CiAgICAJCQlpZiAoYnJ1dGVfZm9yY2UoMCxuLDAsYiksIGdyZWVkeSgwLG4sMCxnKSwgYiAhPSBnKSB7CgkJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpCgkJCQkJCWNvdXQgPDwgQVtpXSA8PCAnICc7CgkJCQkJY291dCA8PCBlbmRsOwoJCQkJCWNvdXQgPDwgImJydXRlX2ZvcmNlID0gIiA8PCBiIDw8IGVuZGw7CgkJCQkJY291dCA8PCAiZ3JlZWR5ICAgICAgPSAiIDw8IGc7CgkJCQkJcmV0dXJuIDA7IH0gfQoJCWNvdXQgPDwgIlBhc3NlZCI7IH0KCWVsc2UgewogICAgICAgIGlmIChnZW5lcmF0ZV90ZXN0KSB7CiAgICAgICAgICAgIHJhbmRvbV9kZXZpY2UgZGV2aWNlOwogICAgICAgICAgICBtdDE5OTM3XzY0IHJuZyhkZXZpY2UoKSk7CiAgICAgICAgICAgIHVuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbjxpbnQ+IHVuaWZvcm0oMSxOLzIpOwogICAgICAgICAgICBjb25zdCBhdXRvIGIgPSBBLmJlZ2luKCksIGUgPSBBLmVuZCgpOwogICAgICAgICAgICBmaWxsKGIsYit1bmlmb3JtKHJuZyksMSksIHNodWZmbGUoYixlLHJuZyksIGNvdXQgPDwgTiA8PCBlbmRsIDw8IEFbMF07CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgTjsgKytpKQogICAgICAgICAgICAgICAgY291dCA8PCAnICcgPDwgQVtpXTsKICAgICAgICAgICAgY291dCA8PCBlbmRsOyB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQogICAgICAgICAgICAgICAgY2luID4+IEFbaV07IH0KCQlpbnQgbiA9IDA7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpCgkJCWlmIChBW2ldID09IDEpCgkJCQlvbmVzW24rK10gPSBpOwoJCWxsIGFucyA9IGluZjsKCQlncmVlZHkoMCxuLDAsYW5zKSwgY291dCA8PCBhbnM7IH0KICAgIHJldHVybiAwOyB9Cg==