Submission #417395

#TimeUsernameProblemLanguageResultExecution timeMemory
417395dooweyCigle (COI21_cigle)C++14
100 / 100
249 ms67420 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; #define fi first #define se second #define mp make_pair #define fastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); const int N = 5010; int dp[N][N]; int D[N]; int main(){ fastIO; int n; cin >> n; for(int i = 1; i <= n; i ++ ){ cin >> D[i]; } int pp; int cum; int cur; int outp = 0; int dpe; int val; int cur_v; int total; for(int cut = 2; cut <= n; cut ++ ){ for(int ash = 2; ash <= cut - 1; ash ++ ){ dp[ash][cut - 1] = max(dp[ash][cut - 1], dp[ash-1][cut-1]); } cur = 0; cum = 0; pp = cut; dpe = cut - 1; total = 0; cur_v = 0; for(int go = cut; go <= n; go ++ ){ dp[cut][go] = dp[dpe][cut - 1] + cur_v; if(go == n) outp = max(outp, dp[cut][go]); cur += D[go]; while(pp > 1 && cum < cur){ pp --; cum += D[pp]; } if(cum == cur){ total ++ ; if(pp - 1 >= dpe){ cur_v ++ ; } else{ if(pp - 1 >= 1 && dp[pp - 1][cut - 1] + total >= dp[dpe][cut - 1] + cur_v){ cur_v = total; dpe = pp - 1; } } } } } cout << outp << "\n"; return 0; }

Compilation message (stderr)

cigle.cpp: In function 'int main()':
cigle.cpp:30:9: warning: unused variable 'val' [-Wunused-variable]
   30 |     int val;
      |         ^~~
#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...