#include <bits/stdc++.h>
using namespace std;
int dp[111][111][111][5];
int a[111];
int main() {
  ios_base::sync_with_stdio(0);
  int n;
  cin >> n;
  int kol1 = 0, kol2 = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (a[i] == 0) continue;
    if (a[i] % 2 == 0)
      kol1++;
    else
      kol2++;
  }
  if (n % 2 == 0) {
    kol1 = n / 2 - kol1;
    kol2 = n / 2 - kol2;
  } else {
    kol1 = n / 2 - kol1;
    kol2 = n / 2 - kol2 + 1;
  }
  for (int len = 1; len <= n + 1; len++)
    for (int fi = 0; fi <= kol1; fi++)
      for (int se = 0; se <= kol2; se++)
        for (int last = 0; last <= 1; last++) dp[len][fi][se][last] = 1e9;
  dp[1][0][0][0] = 0;
  dp[1][0][0][1] = 0;
  for (int len = 1; len <= n; len++)
    for (int fi = 0; fi <= kol1; fi++)
      for (int se = 0; se <= kol2; se++)
        for (int last = 0; last <= 1; last++) {
          int now = last;
          if (a[len - 1] != 0) {
            now = a[len - 1] % 2;
          }
          if (a[len] != 0) {
            if (now == a[len] % 2)
              dp[len + 1][fi][se][a[len] % 2] =
                  min(dp[len + 1][fi][se][a[len] % 2], dp[len][fi][se][now]);
            else
              dp[len + 1][fi][se][a[len] % 2] = min(
                  dp[len + 1][fi][se][a[len] % 2], dp[len][fi][se][now] + 1);
            continue;
          }
          int nad = 0;
          if (now % 2 == 1) nad = 1;
          dp[len + 1][fi + 1][se][0] =
              min(dp[len + 1][fi + 1][se][0], dp[len][fi][se][now] + nad);
          if (now % 2 == 0)
            nad = 1;
          else
            nad = 0;
          dp[len + 1][fi][se + 1][1] =
              min(dp[len + 1][fi][se + 1][1], dp[len][fi][se][now] + nad);
        }
  cout << min(dp[n + 1][kol1][kol2][0], dp[n + 1][kol1][kol2][1]);
}
