Submission #544139

#TimeUsernameProblemLanguageResultExecution timeMemory
544139robertbarbu27Cigle (COI21_cigle)C++14
48 / 100
1080 ms11268 KiB
#include <bits/stdc++.h> #define pb push_back #define ll long long using namespace std; ifstream f("teroristi2.in"); ofstream g("teroristi2.out"); int N; int h[5005]; int dp[5005][5005]; int main () { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>N; for(int i=1;i<=N;i++) { cin>>h[i]; } for(int fin=1;fin<=N;fin++) { for(int start=fin;start>=1;start--) { vector<int> sp(N+5,0); for(int j=fin;j>=start;j--) { sp[j]=sp[j+1]+h[j]; } int sum=0,layers=0,cnt=fin; for(int fin2=fin+1;fin2<=N;fin2++) { ///dp[fin+1][fin2]=max(dp[fin+1][fin2],dp[start][fin]+layers) sum+=h[fin2]; dp[fin+1][fin2]=max(dp[fin+1][fin2],dp[start][fin]+layers); while(sum>sp[cnt]&&cnt>start+1) { cnt--; } if(sum==sp[cnt]&&cnt!=start) { layers++; } } } } int rez=0; for(int i=1;i<=N;i++) { rez=max(rez,dp[i][N]); // cout<<i<<" "<<dp[i][N]<<'\n'; } cout<<rez<<'\n'; }
#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...