//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define MOD 1000000007
#define FOR(i,a,b) for (int i = (a);i <= (b);i++)
#define FOD(i,a,b) for (int i = (b);i >= (a);i--)
#define ALL(x) (x).begin(),(x).end()
#define ii pair<int,int>
#define iii pair<ll,pair<int,int>>
//const int MOD = 998244853;
const int MAXN = 5e5 + 7;
int a[MAXN],f[MAXN];
ll diff[MAXN],seg[MAXN * 4];
void update(int id,int l,int r,int pos,ll v){
if (l > pos || pos > r)return ;
if (l == r){
seg[id] = v;
return ;
}
int mid = (l + r) / 2;
update(id * 2,l,mid,pos,v);
update(id * 2 + 1,mid + 1,r,pos,v);
seg[id] = min(seg[id * 2],seg[id * 2 + 1]);
}
ll Find(int id,int l,int r,int u,ll k){
if (r < u || seg[id] > k)return -1;
if (l == r)return l;
int ans = -1;
int mid = (l + r) / 2;
if (seg[id * 2] <= k)ans = Find(id * 2,l,mid,u,k);
if (ans == -1)ans = Find(id * 2 + 1,mid + 1,r,u,k);
return ans;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
//freopen("GRAPH01.inp","r",stdin);
//freopen("GRAPH01.out","w",stdout);
int n;cin >> n;
FOR(i,1,n)cin >> a[i];
FOD(i,1,n){
diff[i] = diff[i + 1] + a[i];
int id = Find(1,1,n + 1,i + 1,diff[i]);
update(1,1,n + 1,i,2 * diff[i] - diff[id]);
f[i] = f[id] + 1;
}
cout << f[1];
return 0^0;
}
/*
diff[i] >= last[j] + diff[j];
last[j] = diff[j] - diff[k];
=> diff[i] >= 2 * diff[j] - diff[k];
*/
Ly8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiT2Zhc3QiKQovLyNwcmFnbWEgR0NDIHRhcmdldCgiYXZ4LGF2eDIsZm1hIikKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIEZPUihpLGEsYikgZm9yIChpbnQgaSA9IChhKTtpIDw9IChiKTtpKyspICAgCiNkZWZpbmUgRk9EKGksYSxiKSBmb3IgKGludCBpID0gKGIpO2kgPj0gKGEpO2ktLSkKI2RlZmluZSBBTEwoeCkgKHgpLmJlZ2luKCksKHgpLmVuZCgpCiNkZWZpbmUgaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGlpaSBwYWlyPGxsLHBhaXI8aW50LGludD4+Ci8vY29uc3QgaW50IE1PRCA9IDk5ODI0NDg1MzsKY29uc3QgaW50IE1BWE4gPSA1ZTUgKyA3OwppbnQgYVtNQVhOXSxmW01BWE5dOwpsbCBkaWZmW01BWE5dLHNlZ1tNQVhOICogNF07CnZvaWQgdXBkYXRlKGludCBpZCxpbnQgbCxpbnQgcixpbnQgcG9zLGxsIHYpewogICAgaWYgKGwgPiBwb3MgfHwgcG9zID4gcilyZXR1cm4gOwogICAgaWYgKGwgPT0gcil7CiAgICAgICAgc2VnW2lkXSA9IHY7CiAgICAgICAgcmV0dXJuIDsKICAgIH0KICAgIGludCBtaWQgPSAobCArIHIpIC8gMjsKICAgIHVwZGF0ZShpZCAqIDIsbCxtaWQscG9zLHYpOwogICAgdXBkYXRlKGlkICogMiArIDEsbWlkICsgMSxyLHBvcyx2KTsKICAgIHNlZ1tpZF0gPSBtaW4oc2VnW2lkICogMl0sc2VnW2lkICogMiArIDFdKTsKfQpsbCBGaW5kKGludCBpZCxpbnQgbCxpbnQgcixpbnQgdSxsbCBrKXsKICAgIGlmIChyIDwgdSB8fCBzZWdbaWRdID4gaylyZXR1cm4gLTE7CiAgICBpZiAobCA9PSByKXJldHVybiBsOwogICAgaW50IGFucyA9IC0xOwogICAgaW50IG1pZCA9IChsICsgcikgLyAyOwogICAgaWYgKHNlZ1tpZCAqIDJdIDw9IGspYW5zID0gRmluZChpZCAqIDIsbCxtaWQsdSxrKTsKICAgIGlmIChhbnMgPT0gLTEpYW5zID0gRmluZChpZCAqIDIgKyAxLG1pZCArIDEscix1LGspOwogICAgcmV0dXJuIGFuczsKfQppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIC8vZnJlb3BlbigiR1JBUEgwMS5pbnAiLCJyIixzdGRpbik7CiAgICAvL2ZyZW9wZW4oIkdSQVBIMDEub3V0IiwidyIsc3Rkb3V0KTsKICAgIGludCBuO2NpbiA+PiBuOwogICAgRk9SKGksMSxuKWNpbiA+PiBhW2ldOwogICAgRk9EKGksMSxuKXsKICAgICAgICBkaWZmW2ldID0gZGlmZltpICsgMV0gKyBhW2ldOwogICAgICAgIGludCBpZCA9IEZpbmQoMSwxLG4gKyAxLGkgKyAxLGRpZmZbaV0pOwogICAgICAgIHVwZGF0ZSgxLDEsbiArIDEsaSwyICogZGlmZltpXSAtIGRpZmZbaWRdKTsKICAgICAgICBmW2ldID0gZltpZF0gKyAxOwogICAgfQogICAgY291dCA8PCBmWzFdOwogICAgcmV0dXJuIDBeMDsKfQovKgpkaWZmW2ldID49IGxhc3Rbal0gKyBkaWZmW2pdOwpsYXN0W2pdID0gZGlmZltqXSAtIGRpZmZba107Cj0+IGRpZmZbaV0gPj0gMiAqIGRpZmZbal0gLSBkaWZmW2tdOwoqLw==