Submission #1131981

#TimeUsernameProblemLanguageResultExecution timeMemory
1131981alexander707070Bigger segments (IZhO19_segments)C++20
37 / 100
1596 ms2520 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].first+1<dp[i].first)break; if(dp[f].second>pref[i]-pref[f])continue; 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...