#include using namespace std; const int MAXN = 100100; const int INF = 1<<30; int arr[MAXN]; int dp[MAXN][2]; int main() { freopen("negsort.in", "r", stdin); freopen("negsort.out", "w", stdout); int n, i, x; cin>>n; for (i = 0; i < n; ++i) cin>>arr[i]; dp[n - 1][0] = dp[n - 1][1] = 0; for (i = n - 2; i >= 0; --i) for (x = 0; x <= 1; ++x) { dp[i][x] = INF; if (arr[i + 1] >= (1 - 2 * x) * arr[i]) dp[i][x] = min(dp[i][x], dp[i + 1][0]); if (-arr[i + 1] >= (1 - 2 * x) * arr[i]) dp[i][x] = min(dp[i][x], 1 + dp[i + 1][1]); } x = min(dp[0][0], 1 + dp[0][1]); cout<<(x == INF ? -1 : x)<<'\n'; }