#include <bits/stdc++.h>
using namespace std;
int a[105], used[105];
int dp[105][105][105][2];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  int n;
  cin >> n;
  vector<int> cnt(2);
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    used[a[i]] = 1;
  }
  for (int i = 1; i <= n; i++) {
    if (!used[i]) {
      cnt[i % 2]++;
    }
  }
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= n; j++) {
      for (int k = 0; k <= n; k++)
        for (int u = 0; u <= 1; u++) dp[i][j][k][u] = n * 2 + 1;
    }
  }
  dp[0][0][0][0] = dp[0][0][0][1] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j <= cnt[1]; j++) {
      for (int k = 0; k <= cnt[0]; k++) {
        if (a[i] == 0) {
          if (k >= 1) {
            dp[i][j][k][0] = dp[i - 1][j][k - 1][0];
            dp[i][j][k][0] = min(dp[i][j][k][0], dp[i - 1][j][k - 1][1] + 1);
          }
          if (j >= 1) {
            dp[i][j][k][1] = min(dp[i][j][k][1], dp[i - 1][j - 1][k][0] + 1);
            dp[i][j][k][1] = min(dp[i][j][k][1], dp[i - 1][j - 1][k][1]);
          }
        } else {
          for (int u = 0; u <= 1; u++) {
            int val = dp[i - 1][j][k][u];
            if ((a[i] - u) % 2) val++;
            dp[i][j][k][a[i] % 2] = min(dp[i][j][k][a[i] % 2], val);
          }
        }
      }
    }
  }
  cout << min(dp[n][cnt[1]][cnt[0]][1], dp[n][cnt[1]][cnt[0]][0]) << endl;
  return 0;
}
