#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<ll> arr(n + 1);
for (int i = 1; i <= n; ++i) {
cin >> arr[i];
}
const ll INF = (ll)4e18;
const int MAX_SUM = 100;
vector<vector<ll>> dp(n + 1, vector<ll>(MAX_SUM + 1, INF));
dp[0][0] = 0;
for (int right = 1; right <= n; ++right) {
ll segmentSum = 0;
for (int left = right; left >= 1; --left) {
segmentSum += arr[left];
int len = right - left;
for (int prevSum = 0; prevSum <= segmentSum; ++prevSum) {
if (dp[left - 1][prevSum] == INF)
continue;
dp[right][segmentSum] =
min(dp[right][segmentSum],
dp[left - 1][prevSum] + len);
}
}
}
ll result = INF;
for (int s = 1; s <= MAX_SUM; ++s) {
result = min(result, dp[n][s]);
}
cout << result << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwoKICAgIHZlY3RvcjxsbD4gYXJyKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgIGNpbiA+PiBhcnJbaV07CiAgICB9CgogICAgY29uc3QgbGwgSU5GID0gKGxsKTRlMTg7CiAgICBjb25zdCBpbnQgTUFYX1NVTSA9IDEwMDsKCiAgICB2ZWN0b3I8dmVjdG9yPGxsPj4gZHAobiArIDEsIHZlY3RvcjxsbD4oTUFYX1NVTSArIDEsIElORikpOwoKICAgIGRwWzBdWzBdID0gMDsKCiAgICBmb3IgKGludCByaWdodCA9IDE7IHJpZ2h0IDw9IG47ICsrcmlnaHQpIHsKICAgICAgICBsbCBzZWdtZW50U3VtID0gMDsKCiAgICAgICAgZm9yIChpbnQgbGVmdCA9IHJpZ2h0OyBsZWZ0ID49IDE7IC0tbGVmdCkgewogICAgICAgICAgICBzZWdtZW50U3VtICs9IGFycltsZWZ0XTsKCiAgICAgICAgICAgIGludCBsZW4gPSByaWdodCAtIGxlZnQ7CgogICAgICAgICAgICBmb3IgKGludCBwcmV2U3VtID0gMDsgcHJldlN1bSA8PSBzZWdtZW50U3VtOyArK3ByZXZTdW0pIHsKICAgICAgICAgICAgICAgIGlmIChkcFtsZWZ0IC0gMV1bcHJldlN1bV0gPT0gSU5GKQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgIGRwW3JpZ2h0XVtzZWdtZW50U3VtXSA9CiAgICAgICAgICAgICAgICAgICAgbWluKGRwW3JpZ2h0XVtzZWdtZW50U3VtXSwKICAgICAgICAgICAgICAgICAgICAgICAgZHBbbGVmdCAtIDFdW3ByZXZTdW1dICsgbGVuKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsbCByZXN1bHQgPSBJTkY7CgogICAgZm9yIChpbnQgcyA9IDE7IHMgPD0gTUFYX1NVTTsgKytzKSB7CiAgICAgICAgcmVzdWx0ID0gbWluKHJlc3VsdCwgZHBbbl1bc10pOwogICAgfQoKICAgIGNvdXQgPDwgcmVzdWx0IDw8ICdcbic7CgogICAgcmV0dXJuIDA7Cn0=