#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e2 + 23;
int n, m, T;
int dp[maxn][maxn][2];
int a[maxn];
int main() {
  memset(dp, 0x3f, sizeof(dp));
  cin >> n;
  for (int i = 1; i <= n; i++) scanf("%d", a + i);
  dp[0][0][0] = dp[0][0][1] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < maxn; j++) {
      if (!a[i]) {
        if (j > 0) dp[i][j][0] = min(dp[i][j][0], dp[i - 1][j - 1][0]);
        if (j > 0) dp[i][j][0] = min(dp[i][j][0], dp[i - 1][j - 1][1] + 1);
        dp[i][j][1] = min(dp[i][j][1], dp[i - 1][j][1]);
        dp[i][j][1] = min(dp[i][j][1], dp[i - 1][j][0] + 1);
      } else {
        if (a[i] % 2 == 0)
          dp[i][j][1] = min(dp[i - 1][j][1], dp[i - 1][j][0] + 1);
        else if (a[i] % 2 == 1 && j > 0)
          dp[i][j][0] = min(dp[i - 1][j - 1][0], dp[i - 1][j - 1][1] + 1);
      }
    }
  }
  printf("%d", min(dp[n][(n + 1) / 2][0], dp[n][(n + 1) / 2][1]));
}
