#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 1e5 + 5;
int n;
int a[105];
int f[105][105][2];
int n1 = 0, n0 = 0;
int pre[105];
int main() {
  int T;
  cin >> n;
  memset(f, 0x3f, sizeof(f));
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (a[i] & 1) ++n1;
    pre[i] = pre[i - 1] + (a[i] == 0);
  }
  n1 = (n + 1) / 2 - n1;
  n0 = pre[n] - n1;
  f[0][0][0] = f[0][0][1] = 0;
  for (int i = 1; i <= n; i++) {
    if (a[i]) {
      int x = a[i] & 1;
      for (int j = 0; j <= n0; j++) {
        f[i][j][x] = min(f[i - 1][j][x ^ 1] + 1, f[i - 1][j][x]);
      }
    } else {
      for (int j = 0; j <= n0; j++) {
        f[i][j][1] = min(f[i - 1][j][0] + 1, f[i - 1][j][1]);
        f[i][j][0] = min(f[i - 1][j - 1][1] + 1, f[i - 1][j - 1][0]);
      }
    }
  }
  printf("%d\n", min(f[n][n0][1], f[n][n0][0]));
  return 0;
}
