#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const double eps = 1e-6;
const unsigned long long hashp = 1e7 + 19;
const long long INF = 0x3f3f3f3f3f3f3f3fll;
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const int maxn = 2e5 + 100;
int a[maxn], dp[105][105][105][2];
void solve() {
  int n;
  scanf("%d", &n);
  int odd = 0, even = 0;
  memset(dp, inf, sizeof(dp));
  for (int i = 1; (i) <= (n); i++) {
    scanf("%d", &a[i]);
    if (a[i]) {
      if (a[i] & 1)
        odd++;
      else
        even++;
    }
  }
  dp[0][n / 2][n - n / 2][0] = dp[0][n / 2][n - n / 2][1] = 0;
  for (int i = 1; (i) <= (n); i++)
    for (int j = 0; (j) < (n + 1); j++)
      for (int k = 0; (k) < (n + 1); k++)
        if (a[i]) {
          if (a[i] & 1)
            dp[i][j][k][1] =
                min(dp[i - 1][j][k + 1][0] + 1, dp[i - 1][j][k + 1][1]);
          else
            dp[i][j][k][0] =
                min(dp[i - 1][j + 1][k][0], dp[i - 1][j + 1][k][1] + 1);
        } else {
          dp[i][j][k][1] =
              min(dp[i - 1][j][k + 1][0] + 1, dp[i - 1][j][k + 1][1]);
          dp[i][j][k][0] =
              min(dp[i - 1][j + 1][k][0], dp[i - 1][j + 1][k][1] + 1);
        }
  cout << min(dp[n][0][0][0], dp[n][0][0][1]) << endl;
}
int main() {
  solve();
  return 0;
}
