#include <iostream>
#include <sstream>
#include <vector>
#include <cmath>
#include <ctime>
#include <cassert>
#include <ctype.h>
#include <iomanip>
#include <cstdio>
#include <float.h>
#include <queue>
#include <set>
#include <map>
#include <fstream>
#include <cstdlib>
#include <string>
#include <cstring>
#include <algorithm>
#include <numeric>
#include <stack>
#include <functional>
// #include <pair> 
       
using namespace std;
       
#define endl '\n'
#define MOD 1000000007
#define INF 1ll<<30
 
// #define MAX 100010
 
#define eps 1e-11
#define bit_max 1ll<<32
#define _USE_MATH_DEFINES
 
// long long binpow(long long a,long long b)
// {
//     if (b == 1) return a;
//     long long res = binpow(a, b/2)%MOD;
//     if (b % 2) return (res*((res*a)%MOD))%MOD;
//     else return (res * res)%MOD;
// }
 
// long long int fact(long long int a)
// {
//     if(a==0||a==1)
//         return 1;
//     long long int ans = 1;
//     for(int i=a;i>=1;i--)
//         ans = (ans * i);
//     return ans;
// }
 
// long long int ivmod(long long int a)
// {
//     return binpow(a,MOD-2);
// }
 
// long long int ncr(long long int a,long long int b)
// {
//     long long int pans=1;
//     for(int i =a;i>max(b,a-b);i--)
//         pans=pans*i;
//     long long int div = fact(min(b,a-b));
//     // cout<<ans<<"            "<<div<<endl;
//     pans = pans/div;
//     return pans;
// }

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    // #ifndef ONLINE_JUDGE
    // freopen("input.txt","r",stdin);
    // freopen("output.txt","w",stdout);
    // #endif   
    int n;
    cin>>n;
    int b[n];
    int a[n];
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        b[i] = a[i];
    }
    long long int sum = 0;
    long long int count = 0,count1=0;
    for(int i=1;i<=n;i++)
    {
        if(i!=1)
        {
            if(i%2==0)  //+ve
            {
                if((sum+a[i])<=0)
                {
                    count+=abs(sum+a[i])+1;
                    sum=1;
                }
                else
                {
                    sum+=a[i];
                }
            }
            else
            {
                if((sum+a[i])>=0)
                {
                    count+=abs(sum+a[i])+1;
                    sum=-1;
                }
                else
                {
                    sum+=a[i];
                }
            }
        }
        else
        {
            if(a[i]>=0)
            {
                sum=-1;
                count+=(a[i]+1);
            }
            else if(a[i]<0)
            {
                sum+=a[i];
            }
        }
    }
    for(int i=1;i<=n;i++)
        a[i] = b[i];
    sum = 0;
    for(int i=1;i<=n;i++)
    {
        if(i!=1)
        {
            if(i%2!=0)  //+ve
            {
                if(sum+a[i]<=0)
                {
                    count1+=abs(sum+a[i])+1;
                    sum=1;
                }
                else
                {
                    sum+=a[i];
                }
            }
            else
            {
                if(sum+a[i]>=0)
                {
                    count1+=abs(sum+a[i])+1;
                    sum=-1;
                }
                else
                {
                    sum+=a[i];
                }
            }
        }
        else
        {
            if(a[i]<=0)
            {
                sum=1;
                count1+=(abs(a[i])+1);
            }
            else if(a[i]>0)
            {
                sum+=a[i];
            }
        }
    }
    // cout<<count<<endl<<count1<<endl;
    cout<<min(count,count1)<<endl;
    return 0;
}

Measured memory_bytes: 1024