#include <bits/stdc++.h>
using namespace std;
template <typename T>
ostream& operator<<(ostream& o, const vector<T>& v) {
  int b = 0;
  for (const auto& a : v) o << (b++ ? ", " : "") << a;
  return o;
}
template <typename T, typename U>
ostream& operator<<(ostream& o, const pair<T, U>& p) {
  o << p.X << ' ' << p.Y;
  return o;
}
long long log(long long x) { return 64 - __builtin_clzll(x) - 1; }
const int NEG = 0;
const int POS = 1;
long long A[100000];
long long DP[2][100000];
long long f(long long c, long long p) {
  long long& x = DP[c][p];
  if (x != -1) return x;
  if (p == 0) {
    if (c == NEG) {
      return x = abs(A[p] - (-1));
    }
    return x = abs(A[p] - 1);
  }
  long long a = abs(A[p] - (-1)) + f(NEG == c, p - 1);
  long long b = abs(A[p] - 1) + f(POS == c, p - 1);
  return x = min(a, b);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> A[i];
  }
  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 100000; j++) {
      DP[i][j] = -1;
    }
  }
  cout << f(POS, n - 1) << endl;
}
