#include <bits/stdc++.h>
using namespace std;
int ara[102], mem[102][102][102][2], n;
bool chck(int x, int y) {
  if ((x & 1) && (y & 1)) return 0;
  if (!(x & 1) && !(y & 1)) return 0;
  return 1;
}
int dp(int pos, int p1, int p2, bool f) {
  if (pos == n) return 0;
  if (mem[pos][p1][p2][f] != -1) return mem[pos][p1][p2][f];
  mem[pos][p1][p2][f] = n;
  if (ara[pos])
    mem[pos][p1][p2][f] =
        chck(f, ara[pos] & 1) + dp(pos + 1, p1, p2, ara[pos] & 1);
  else {
    if (p1) mem[pos][p1][p2][f] = chck(f, 1) + dp(pos + 1, p1 - 1, p2, 1);
    if (p2)
      mem[pos][p1][p2][f] =
          min(mem[pos][p1][p2][f], chck(f, 0) + dp(pos + 1, p1, p2 - 1, 0));
  }
  return mem[pos][p1][p2][f];
}
bool freq[102];
int main() {
  int odd = 0, even = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &ara[i]), freq[ara[i]] = 1;
  for (int i = 1; i <= n; i++)
    if (!freq[i]) {
      if (i & 1)
        odd++;
      else
        even++;
    }
  memset(mem, -1, sizeof mem);
  printf("%d\n", min(dp(0, odd, even, 0), dp(0, odd, even, 1)));
  return 0;
}
