#include <bits/stdc++.h>
using namespace std;
int arr[105], n;
int dp[105][105][105][5];
int fn(int idx, int odd, int even, int pre) {
  if (idx >= n) return 0;
  int &ret = dp[idx][even][odd][pre];
  if (~ret) return ret;
  ret = INT_MAX;
  if (arr[idx] == 0) {
    if (odd) ret = min(ret, fn(idx + 1, odd - 1, even, 1) + (pre != 1 && idx));
    if (even) ret = min(ret, fn(idx + 1, odd, even - 1, 0) + (pre != 0 && idx));
  } else
    ret =
        min(ret, fn(idx + 1, odd, even, arr[idx] % 2) + (arr[idx] % 2 != pre));
  return ret;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  memset(dp, -1, sizeof(dp));
  cin >> n;
  map<int, int> mp;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    mp[arr[i]] = 1;
  }
  int odd = 0, even = 0;
  for (int i = 1; i <= n; i++) {
    if (!mp[i]) {
      if (i % 2 == 0)
        even++;
      else
        odd++;
    }
  }
  cout << fn(0, odd, even, arr[0] % 2) << "\n";
  return 0;
}
