#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int n;
cin >> n;
vector<int> vi(n + 1), qs;
for (int i = 1; i <= n; i++)
cin >> vi[i];
qs = vi;
for (int i = 1; i <= n; i++)
qs[i] += qs[i - 1];
vector<pair<int, int>> idk;
idk.push_back({vi[1], 1});
vector<int> bef(n + 1);
int of = 0;
for (int i = 2; i <= n; i++) {
if (vi[i] + of < idk[0].first) {
bef[i] = bef[idk.back().second];
idk.push_back({idk.back().first + 2 * vi[i], i});
of += vi[i];
} else {
auto [val, in] = *(upper_bound(idk.begin(), idk.end(),
make_pair(vi[i] + of, LLONG_MAX)) -
1);
bef[i] = in;
of += vi[i];
pair<int, int> pii = {qs[i] - qs[in] + of, i};
while (!idk.empty() && idk.back().first >= pii.first) {
idk.pop_back();
}
idk.push_back(pii);
}
// cout << i << " " << idk.size() << " " << of << "\n";
// for (auto [val, in] : idk)
// cout << val << " " << in << "\n";
}
int ans = 0;
int cur = n;
while (cur > 0) {
ans++;
cur = bef[cur];
}
// cout << "BEF\n";
// for (auto a : bef)
// cout << a << " ";
// cout << "\n";
cout << ans << "\n";
}