#include <bits/stdc++.h>
using namespace std;
const int MAXN = 103;
int dp[MAXN][MAXN][MAXN][2];
int ar[MAXN];
int n;
int solve(int i, int p, int q, int lastParity) {
  if (i > n) {
    assert(p == 0);
    assert(q == 0);
    return 0;
  }
  int &ans = dp[i][p][q][lastParity];
  if (ans != -1) return ans;
  ans = MAXN;
  if (ar[i] == -1) {
    if (p > 0) {
      int tmp = solve(i + 1, p - 1, q, 0);
      if (i > 1 && lastParity == 1) tmp++;
      ans = min(ans, tmp);
    }
    if (q > 0) {
      int tmp = solve(i + 1, p, q - 1, 1);
      if (i > 1 && lastParity == 0) tmp++;
      ans = min(ans, tmp);
    }
  } else {
    int tmp = solve(i + 1, p, q, ar[i]);
    if (i > 1 && (lastParity != ar[i])) tmp++;
    ans = min(ans, tmp);
  }
  return ans;
}
int main() {
  memset(dp, -1, sizeof dp);
  cin >> n;
  int even = n / 2;
  int odd = (n + 1) / 2;
  for (int i = 1; i <= n; i++) {
    cin >> ar[i];
    if (ar[i] == 0)
      ar[i] = -1;
    else {
      ar[i] &= 1;
      if (ar[i])
        odd--;
      else
        even--;
    }
  }
  cout << solve(1, even, odd, 0) << "\n";
  return 0;
}
