Submission #883696

#TimeUsernameProblemLanguageResultExecution timeMemory
883696OAleksaBigger segments (IZhO19_segments)C++14
100 / 100
69 ms20820 KiB
#include<bits/stdc++.h> using namespace std; #define f first #define s second #define int long long const int maxn = 5e5 + 69; const int inf = 1e18; int n, a[maxn], p[maxn], dp[maxn], pos[maxn]; signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int tt = 1; //cin >> tt; while (tt--) { cin >> n; for (int i = 1;i <= n;i++) cin >> a[i]; for (int i = 1;i <= n;i++) p[i] = p[i - 1] + a[i]; for (int i = 1;i <= n;i++) { pos[i] = max(pos[i - 1], pos[i]); dp[i] = dp[pos[i]] + 1; auto u = lower_bound(p + 1, p + n + 1, 2 * p[i] - p[pos[i]]) - p; if (u <= n) pos[u] = max(pos[u], i); } cout << dp[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...