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