#include <bits/stdc++.h>
using namespace std;
int dp[101][101][101][3], Even, Odd, n;
int current[105], Vis[105];
int Rec(int i, int Even, int Odd, int Last) {
  if (i == n) return 0;
  if (Last != -1 && dp[i][Even][Odd][Last] + 1) return dp[i][Even][Odd][Last];
  int Res = 1e9;
  if (current[i])
    Res = min(Res, Rec(i + 1, Even, Odd, current[i] % 2)) +
          (Last % 2 != current[i] % 2 && Last != -1);
  else {
    if (Even)
      Res = min(Res,
                Rec(i + 1, Even - 1, Odd, 0) + (Last % 2 != 0 && Last != -1));
    if (Odd)
      Res = min(Res,
                Rec(i + 1, Even, Odd - 1, 1) + (Last % 2 == 0 && Last != -1));
  }
  return dp[i][Even][Odd][Last] = Res;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &current[i]);
    Vis[current[i]] = 1;
  }
  for (int i = 1; i <= n; i++) {
    Odd += (!Vis[i] && i % 2 != 0);
    Even += (!Vis[i] && i % 2 == 0);
  }
  memset(dp, -1, sizeof(dp));
  cout << Rec(0, Even, Odd, -1) << endl;
  return 0;
}
