#include <bits/stdc++.h>
using namespace std;
int a[105];
int dp[102][102][102][2];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  int cntParz = 0;
  int cntNParz = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (a[i] % 2 == 0 && a[i] != 0)
      cntParz++;
    else if (a[i] != 0)
      cntNParz++;
  }
  cntParz = (n / 2) - cntParz;
  cntNParz = (n + 1) / 2 - cntNParz;
  for (int i = 1; i <= n; i++)
    for (int j = 0; j <= n; j++)
      for (int k = 0; k <= n; k++) {
        dp[i][j][k][0] = 1e6;
        dp[i][j][k][1] = 1e6;
      }
  for (int i = 1; i <= n; i++) {
    if (a[i] != 0) {
      if (a[i] % 2 == 0) {
        for (int j = 0; j <= cntParz; j++) {
          for (int k = 0; k <= cntNParz; k++) {
            int x = dp[i - 1][j][k][0];
            int y = dp[i - 1][j][k][1] + 1;
            dp[i][j][k][0] = min(x, y);
          }
        }
      } else {
        for (int j = 0; j <= cntParz; j++) {
          for (int k = 0; k <= cntNParz; k++) {
            int x = dp[i - 1][j][k][0] + 1;
            int y = dp[i - 1][j][k][1];
            dp[i][j][k][1] = min(x, y);
          }
        }
      }
    } else {
      for (int j = 0; j <= cntParz; j++)
        for (int k = 0; k <= cntNParz; k++) {
          if (j > 0) {
            int x = dp[i - 1][j - 1][k][0];
            int y = dp[i - 1][j - 1][k][1] + 1;
            dp[i][j][k][0] = min(x, y);
          }
          if (k > 0) {
            int x = dp[i - 1][j][k - 1][0] + 1;
            int y = dp[i - 1][j][k - 1][1];
            dp[i][j][k][1] = min(x, y);
          }
        }
    }
  }
  cout << min(dp[n][cntParz][cntNParz][0], dp[n][cntParz][cntNParz][1]);
  return 0;
}
