#include <bits/stdc++.h>
using namespace std;
long long ara[105], dp[104][104][104][2], n;
long long rec(long long i, long long e, long long o, long long l) {
  if (i >= n) return 0;
  if (dp[i][o][e][l] != -1) return dp[i][o][e][l];
  long long ret = 1000000007;
  if (ara[i] == 0) {
    if (e) {
      if (i)
        ret = min((rec(i + 1, e - 1, o, 0) + (l + 0) % 2), ret);
      else
        ret = rec(i + 1, e - 1, o, 0);
    }
    if (o) {
      if (i)
        ret = min((rec(i + 1, e, o - 1, 1) + (l + 1) % 2), ret);
      else
        ret = min(rec(i + 1, e, o - 1, 1), ret);
    }
  } else {
    if (i)
      ret = rec(i + 1, e, o, ara[i] % 2) + (l + ara[i]) % 2;
    else
      ret = rec(i + 1, e, o, ara[i] % 2);
  }
  return dp[i][o][e][l] = ret;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  while (cin >> n) {
    long long e = n / 2, o = (n + 1) / 2;
    for (long long i = 0; i < n; i++) {
      cin >> ara[i];
      if (ara[i] == 0) continue;
      if (ara[i] % 2 == 1)
        o--;
      else
        e--;
    }
    memset(dp, -1, sizeof dp);
    cout << rec(0, e, o, 0) << endl;
  }
  return 0;
}
