#include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
int a[maxn];
int dp[maxn][maxn][maxn][2];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, od = 0, ev = 0;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (!a[i]) continue;
    if (a[i] & 1) {
      od--;
    } else {
      ev--;
    }
  }
  od += (n & 1) + n / 2;
  ev += n / 2;
  memset(dp, 63, sizeof dp);
  memset(dp[0][0], 0, sizeof dp[0][0]);
  for (int i = 1; i <= n; i++) {
    int l = 0, r = 1;
    if (a[i] != 0) l = r = (a[i] & 1);
    for (int j = 0; j <= ev; j++)
      for (int k = 0; k <= od; k++) {
        for (int x = 0; x <= 1; x++) {
          if (j - (a[i] == 0) >= 0 && l != 1)
            dp[i][j][k][0] =
                min(dp[i][j][k][0], dp[i - 1][j - (a[i] == 0)][k][x] + (x ^ 0));
          if (k - (a[i] == 0) >= 0 && r != 0)
            dp[i][j][k][1] =
                min(dp[i][j][k][1], dp[i - 1][j][k - (a[i] == 0)][x] + (x ^ 1));
        }
      }
  }
  cout << min(dp[n][ev][od][0], dp[n][ev][od][1]) << endl;
}
