Submission #268522

#TimeUsernameProblemLanguageResultExecution timeMemory
268522Osama_AlkhodairyBigger segments (IZhO19_segments)C++17
37 / 100
1574 ms2560 KiB
#include <bits/stdc++.h>
using namespace std;
#define finish(x) return cout << x << endl, 0
#define ll long long

const int N = 500001;

int n;
vector <int> a;
pair <int, ll> dp[N];

void maximize(pair <int, ll> &a, pair <int, ll> b){
    if(b.first > a.first) a = b;
    else if(b.first == a.first && b.second < a.second) a = b;
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n;
    a.resize(n + 1);
    for(int i = 1 ; i <= n ; i++){
        cin >> a[i];
    }
    for(int i = 1 ; i <= n ; i++){
        ll sum = 0;
        for(int j = i ; j >= 1 ; j--){
            sum += a[j];
            if(sum >= dp[j - 1].second){
                maximize(dp[i], make_pair(dp[j - 1].first + 1, sum));
            }
        }
    }
    cout << dp[n].first << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...