#include <bits/stdc++.h>
using namespace std;
long long dp[101][3][101][101];
long long solve(long long a[], long long i, long long prev, long long o,
                long long e, long long n) {
  if (i == n + 1) {
    return (0);
  }
  if (dp[i][prev][o][e] != -1) {
    return (dp[i][prev][o][e]);
  }
  if (a[i] == 0) {
    long long op1 = INT_MAX;
    long long op2 = INT_MAX;
    if (o > 0) {
      op1 = (prev == 2) + solve(a, i + 1, 1, o - 1, e, n);
    }
    if (e > 0) {
      op2 = (prev == 1) + solve(a, i + 1, 2, o, e - 1, n);
    }
    return (dp[i][prev][o][e] = min(op1, op2));
  } else {
    long long op = INT_MAX;
    if (a[i] % 2 == 0) {
      op = (prev == 1) + solve(a, i + 1, 2, o, e, n);
    } else {
      op = (prev == 2) + solve(a, i + 1, 1, o, e, n);
    }
    return (dp[i][prev][o][e] = op);
  }
}
int main() {
  long long n;
  cin >> n;
  long long a[n + 1];
  long long i;
  long long o = 0;
  long long e = 0;
  for (i = 1; i <= n; i++) {
    cin >> a[i];
    if (a[i] == 0) {
      continue;
    }
    if (a[i] % 2 == 0) {
      e++;
    } else {
      o++;
    }
  }
  long long mxe = n / 2;
  long long mxo = n / 2;
  if (n % 2 != 0) {
    mxo++;
  }
  mxo -= o;
  mxe -= e;
  memset(dp, -1, sizeof(dp));
  long long p = solve(a, 1, 0, mxo, mxe, n);
  cout << p << "\n";
}
