#include<bits/stdc++.h>
using namespace std;
vector<long long> pr(500001);
vector<long long> upd[500002];
long long n;
long long dude(long long x) {
long long l = 0,r = n;
while(l < r) {
long long mid = (l+r+1)/2;
if(pr[mid] < x) {
l = mid;
}
else {
r = mid-1;
}
}
return l;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
vector<long long> haha(n+1);
for(long long i = 1; i <= n; i++) {
cin >> haha[i];
pr[i] = pr[i-1]+haha[i];
}
vector<pair<long long,long long>> dp(n+1);
long long y = 0;
for(long long i = 1; i <= n; i++) {
for(long long v: upd[i]) {
y = max(y,v);
}
dp[i] = {1+dp[y].first,pr[i]-pr[y]};
upd[dude(pr[i]+pr[i]-pr[y])+1].push_back(i);
}
cout << dp[n].first;
return 0;
}