#include <bits/stdc++.h>
using namespace std;
const long long M = 1e9 + 7;
const long long mod = 998244353;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
int dp[101][101][3], n;
vector<int> a;
int f(int i, int p, int ip, int l) {
  int &x = dp[i][ip][l];
  if (x != -1) return x;
  if (i == n) return x = 0;
  if (a[i]) {
    return x = (l == !(a[i] % 2)) + f(i + 1, p, ip, a[i] % 2);
  }
  x = 12345;
  if (p > 0) {
    x = min(x, (l == 1) + f(i + 1, p - 1, ip, 0));
  }
  if (ip > 0) {
    x = min(x, (l == 0) + f(i + 1, p, ip - 1, 1));
  }
  return x;
}
void solve() {
  cin >> n;
  a.resize(n);
  int p[2] = {n / 2, (n + 1) / 2};
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    if (a[i] > 0) {
      p[a[i] % 2]--;
    }
  }
  memset(dp, -1, sizeof(dp));
  cout << f(0, p[0], p[1], 2) << endl;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
}
