#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
const long long NMAX = 200;
long long a[NMAX], n;
long long dp[NMAX][NMAX][NMAX][2];
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie();
  cerr.tie();
  cout.tie();
  cin >> n;
  if (n == 1) return cout << 0, 0;
  for (long long i = 1; i <= n; i++) cin >> a[i];
  memset(dp, 0x3f, sizeof(dp));
  dp[0][0][0][0] = dp[0][0][0][1] = 0;
  for (long long i = 1; i <= n; i++) {
    for (long long j = 0; j <= i; j++) {
      for (long long k = 0; k <= i; k++) {
        if (j > 0)
          dp[i][j][k][0] =
              min(dp[i - 1][j - 1][k][1] + 1, dp[i - 1][j - 1][k][0]);
        if (k > 0)
          dp[i][j][k][1] =
              min(dp[i - 1][j][k - 1][1], dp[i - 1][j][k - 1][0] + 1);
        if (a[i]) {
          if (a[i] % 2) {
            dp[i][j][k][0] = 10000000;
          } else {
            dp[i][j][k][1] = 10000000;
          }
        }
      }
    }
  }
  return cout << min(dp[n][n / 2][(n + 1) / 2][0],
                     dp[n][n / 2][(n + 1) / 2][1]),
         0;
  return 0;
}
