#include<iostream>
using namespace std;
int n,d[100010];
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
cin>>d[i];
int step=n,s=0,pre=-1; //pre=-1表示当前可以偿还债务
for(int i=1;i<=n;++i)
{
s+=d[i];
if(s<0&&pre==-1) //无法偿还债务时(s<0)应记录下是在哪个点开始无法偿还
pre=i;
else if(s>=0&&pre!=-1) //只要可以偿还债务(s>=0)就应该立刻返回到开始无法偿还的那个点,尽量使往回走的距离最短
{
step+=2*(i-pre);
pre=-1;
}
}
cout<<step<<endl;
return 0;
}
using namespace std;
int n,d[100010];
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
cin>>d[i];
int step=n,s=0,pre=-1; //pre=-1表示当前可以偿还债务
for(int i=1;i<=n;++i)
{
s+=d[i];
if(s<0&&pre==-1) //无法偿还债务时(s<0)应记录下是在哪个点开始无法偿还
pre=i;
else if(s>=0&&pre!=-1) //只要可以偿还债务(s>=0)就应该立刻返回到开始无法偿还的那个点,尽量使往回走的距离最短
{
step+=2*(i-pre);
pre=-1;
}
}
cout<<step<<endl;
return 0;
}