#include <bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 1e18;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
int a[n + 1];
pair < int , int > dp[n + 1];
for(int i = 1; i <= n; i++){
cin >> a[i];
dp[i] = {-1, INF};
}
dp[0] = {0, 0};
dp[1].first = 1;
dp[1].second = a[1];
for(int i = 2; i <= n; i++){
int sum = 0;
for(int j = i; j >= 0; j--){
if(dp[j].second <= sum){
if(dp[j].first + 1 >= dp[i].first){
if(dp[j].first + 1 == dp[i].first){
dp[i].second = min(dp[i].second, sum);
}
else dp[i].second = sum;
dp[i].first = dp[j].first + 1;
}
}
sum += a[j];
}
}
cout << dp[n].first << endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |