//小数点以下　cout << fixed << setprecision(10) << num << endl;
//桁数はlog10(mid)でやれ　log(mid)/log(10)はWA
//long*long<0で判定するな
//開区間と閉区間
//アルファベットが何番目かは x=s[i]-'a'
//bfsはmain()内で　rep(i,h)rep(j,w)rep(i,4)でバグ
//切り上げ：(a+(b-1))/b
//32bit以上は 1ull<<j
// map 初期値0 for(auto itr=mp.begin();itr!=mp.end();++itr) itr->fi itr->se で全探索
// for(auto u:mp) u.fi u.se も可能
//n個のgcd,lcmは一つずつみて更新していく
//大きな数を扱うときは素因数分解した形で持っておく
// (l/a[i]) = l*powmod(a[i],MOD-2)%MOD;
//auto itr=lower_bound(ALL(a),key) a[itr-a.begin()]
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
#include <queue>
#include <stack>
#include <tuple>
#include <cmath>
#include <iomanip>
#include <map>
#include <stdio.h>
#include <cstring> //memset(dp,0,sizeof(dp))
#include <functional> //operator[]
#define ll long long
#define rep(i,n) for(int i=0;i<(n);i++)
#define rrep(i,n) for(int i=n-1;i>=0;i--)
#define fi first
#define se second
#define pb push_back
#define ALL(a) (a).begin(),(a).end()
using namespace std;
template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}
typedef pair<int,int> P;
typedef pair<ll,ll> Pll;

signed main(){
    int n; cin >> n;
    ll ans=0;
    ll sum=0;
    bool fl=0;
    ll mi=0; ll anmi=0;
    rep(i,n){
        ll a; cin >> a;
        if(i==0){
            if(a==0){
                fl=1;
                break;
            }
            sum+=a;
            if(a>0){
                mi=-1;
                anmi=a+1;
            }else{
                mi=1;
                anmi=-a+1;
            }
            continue;
        }
        if(0<sum){
            if(0<sum+a){
                ans+=sum+a+1;
                sum=-1;
            }
            else if(sum+a==0){
                ans++;
                sum=-1;
            }else{
                sum+=a;
            }
        }else{
            if(0>sum+a){
                ans+=abs(sum+a)+1;
                sum=1;
            }
            else if(sum+a==0){
                ans++;
                sum=1;
            }else{
                sum+=a;
            }
        }
        if(0<mi){
            if(0<mi+a){
                anmi+=mi+a+1;
                mi=-1;
            }
            else if(mi+a==0){
                anmi++;
                mi=-1;
            }else{
                mi+=a;
            }
        }else{
            if(0>mi+a){
                anmi+=abs(mi+a)+1;
                mi=1;
            }
            else if(mi+a==0){
                anmi++;
                mi=1;
            }else{
                mi+=a;
            }
        }
    }
    chmin(ans,anmi);
    if(fl){
        ll sum1=1,sum2=-1;
        ans=1;
        ll ans2=1;
        rep(i,n-1){
            ll a; cin >> a;
            if(0<sum1){
                if(0<sum1+a){
                    ans+=sum1+a+1;
                    sum1=-1;
                }
                else if(sum1+a==0){
                    ans++;
                    sum1=-1;
                }else{
                    sum1+=a;
                }
            }else{
                if(0>sum1+a){
                    ans+=abs(sum1+a)+1;
                    sum1=1;
                }
                else if(sum1+a==0){
                    ans++;
                    sum1=1;
                }else{
                    sum1+=a;
                }
            }
            if(0<sum2){
                if(0<sum2+a){
                    ans2+=sum2+a+1;
                    sum2=-1;
                }
                else if(sum2+a==0){
                    ans2++;
                    sum2=-1;
                }else{
                    sum2+=a;
                }
            }else{
                if(0>sum2+a){
                    ans2+=abs(sum2+a)+1;
                    sum2=1;
                }
                else if(sum2+a==0){
                    ans2++;
                    sum2=1;
                }else{
                    sum2+=a;
                }
            }
        }
        chmin(ans,ans2);
    }
    cout << ans << endl;
}


Measured memory_bytes: 256