Submission #168336

#TimeUsernameProblemLanguageResultExecution timeMemory
168336IldarKABigger segments (IZhO19_segments)C++14
0 / 100
3 ms376 KiB
#include <bits/stdc++.h> using namespace std; int n, a[500001], dp[3001][3001]; int main(){ cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i]; dp[1][i] = 1; } for(int i = 2; i <= n; i++){ int po = i - 1; long long sum = 0; long long sum2 = 0; int mx = 0; for(int j = i; j <= n; j++){ sum += a[j]; while(po > 0 && sum2 + a[po] <= sum){ sum2 += a[po]; mx = max(dp[po][i - 1], mx); po--; } if(po < i - 1){ dp[i][j] = mx + 1; } } } int mx = 0; for(int i = 1; i <= n; i++){ mx = max(dp[i][n], mx); } cout << mx; }
#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...