#include <bits/stdc++.h>
using namespace std;
bool used[101];
int dp[101][2][101][101];
int b[100001];
int main() {
  int n;
  cin >> n;
  int a[n + 1];
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    used[a[i]] = 1;
  }
  int even = 0, odd = 0;
  for (int i = 1; i <= n; i++)
    if (!used[i])
      if (i % 2)
        odd++;
      else
        even++;
  for (int i = 0; i <= n; i++)
    for (int e = 0; e <= even; e++)
      for (int o = 0; o <= odd; o++) dp[i][0][e][o] = dp[i][1][e][o] = 100001;
  dp[0][0][0][0] = dp[0][1][0][0] = 0;
  for (int i = 1; i <= n; i++)
    for (int e = 0; e <= even; e++)
      for (int o = 0; o <= odd; o++) {
        if (!a[i]) {
          if (o == 0)
            dp[i][1][e][o] = 100001;
          else
            dp[i][1][e][o] =
                min(dp[i - 1][1][e][o - 1], dp[i - 1][0][e][o - 1] + 1);
          if (e == 0)
            dp[i][0][e][o] = 100001;
          else
            dp[i][0][e][o] =
                min(dp[i - 1][1][e - 1][o] + 1, dp[i - 1][0][e - 1][o]);
        } else {
          if (a[i] % 2) {
            dp[i][1][e][o] = min(dp[i - 1][1][e][o], dp[i - 1][0][e][o] + 1);
            dp[i][0][e][o] = 100001;
          } else {
            dp[i][0][e][o] = min(dp[i - 1][1][e][o] + 1, dp[i - 1][0][e][o]);
            dp[i][1][e][o] = 100001;
          }
        }
      }
  cout << min(dp[n][0][even][odd], dp[n][1][even][odd]);
  return 0;
}
