#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 105;
int n;
int arr[N], sum[N];
int dp[2][N][2];
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) dp[0][i][0] = dp[0][i][1] = INT_MAX;
for (int i = 1; i <= n; i++) cin >> arr[i];
for (int I = 1; I <= n; I++) {
int i = I & 1, s = (I - 1) & 1;
if (arr[I] == 0) {
dp[i][0][0] = INT_MAX;
dp[i][0][1] = dp[s][0][1];
for (int j = 1; j <= n / 2; j++) {
dp[i][j][1] = min(dp[s][j - 1][0] + 1, dp[s][j][1]);
dp[i][j][1] = min(dp[s][j - 1][0], dp[s][j][1] + 1);
}
} else if (arr[I] % 2 == 0) {
dp[i][0][0] = INT_MAX;
dp[i][0][1] = INT_MAX;
for (int j = 1; j <= n / 2; j++) {
dp[i][j][1] = INT_MAX;
dp[i][j][0] = min(dp[s][j - 1][0], dp[s][j][1] + 1);
}
} else {
dp[i][0][0] = INT_MAX;
dp[i][0][1] = dp[s][0][1];
for (int j = 1; j <= (n + 1) / 2; j++) {
dp[i][j][0] = INT_MAX;
dp[i][j][1] = min(dp[s][j][1], dp[s][j - 1][0] + 1);
}
}
}
cout << min(dp[n & 1][n / 2][0], dp[n][n / 2][1]);
return 0;
}