Submission #1131980

#TimeUsernameProblemLanguageResultExecution timeMemory
1131980alexander707070Bigger segments (IZhO19_segments)C++20
37 / 100
1595 ms2700 KiB
#include<bits/stdc++.h>
#define MAXN 100007
using namespace std;

int n,a[MAXN];
long long pref[MAXN];

pair<int,long long> dp[MAXN];

int main(){

    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        pref[i]=pref[i-1]+a[i];
    }

    dp[0]={0,0};
    for(int i=1;i<=n;i++){
        for(int f=i-1;f>=0;f--){
            if(dp[f].second<=pref[i]-pref[f]){

                if(dp[f].first+1>dp[i].first)dp[i]={dp[f].first+1,pref[i]-pref[f]};
                else if(dp[f].first+1==dp[i].first)dp[i].second=min(dp[i].second,pref[i]-pref[f]);
            }
        }
    }

    cout<<dp[n].first<<"\n";

	return 0;
}
#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...