#include <bits/stdc++.h>
using namespace std;
int dp[101][101][101][2];
int n;
vector<int> A;
int recur(int idx, int e, int o, int p) {
  if (idx == n) return 0;
  auto& ret = dp[idx][e][o][p];
  if (ret != -1) return ret;
  if (A[idx] == 0) {
    ret = 100000;
    if (o) {
      int candi = recur(idx + 1, e, o - 1, 1) + (p == 0 && idx > 0);
      ret = min(ret, candi);
    }
    if (e) {
      int candi = recur(idx + 1, e - 1, o, 0) + (p == 1 && idx > 0);
      ret = min(ret, candi);
    }
  } else if (A[idx] % 2) {
    ret = recur(idx + 1, e, o, 1);
    if (p == 0 && idx > 0) ret++;
  } else {
    ret = recur(idx + 1, e, o, 0);
    if (p == 1 && idx > 0) ret++;
  }
  return ret;
}
void solve() {
  memset(dp, -1, sizeof(dp));
  cin >> n;
  A = vector<int>(n);
  for (auto& a : A) cin >> a;
  int e = n / 2, o = n / 2;
  if (n % 2) o++;
  for (auto a : A) {
    if (a == 0) continue;
    if (a % 2)
      o--;
    else
      e--;
  }
  auto ret = recur(0, e, o, 0);
  cout << ret << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int t = 1;
  for (auto i = 0; i < t; ++i) solve();
}
