#include <bits/stdc++.h>
using namespace std;
int cnt[2], V[101], D[101][51][51][2];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ((void)0);
  ((void)0);
  ((void)0);
  int N;
  cin >> N;
  cnt[0] = N / 2;
  cnt[1] = (N + 1) / 2;
  for (int i = 1; i <= N; i++) {
    cin >> V[i];
    if (V[i]) cnt[V[i] & 1]--;
  }
  memset(D, 0x7f, sizeof(D));
  D[0][0][0][0] = D[0][0][0][1] = 0;
  for (int i = 1; i <= N; i++)
    for (int j = 0; j <= cnt[0]; j++)
      for (int k = 0; k <= cnt[1]; k++)
        for (int l = 0; l < 2; l++)
          if (D[i - 1][j][k][l] != 0x7f7f7f7f) {
            if (V[i])
              D[i][j][k][V[i] & 1] = min(D[i][j][k][V[i] & 1],
                                         D[i - 1][j][k][l] + (l ^ (V[i] & 1)));
            else {
              if (j < cnt[0])
                D[i][j + 1][k][0] =
                    min(D[i][j + 1][k][0], D[i - 1][j][k][l] + l);
              if (k < cnt[1])
                D[i][j][k + 1][1] =
                    min(D[i][j][k + 1][1], D[i - 1][j][k][l] + !l);
            }
          }
  cout << min(D[N][cnt[0]][cnt[1]][0], D[N][cnt[0]][cnt[1]][1]) << '\n';
  return 0;
}
