Submission #800135

#TimeUsernameProblemLanguageResultExecution timeMemory
800135vjudge1Bigger segments (IZhO19_segments)C++17
0 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 5e5+3; int n; int a[maxn]; long long p[maxn]; int ans; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i=0; i<n; i++) cin >> a[i]; p[0] = 0; for (int i=1; i<=n; i++) p[i] = p[i-1] + a[i-1]; int l1 = 1, r1 = n; while (l1 <= r1) { int m1 = (l1+r1)/2; int cnt = 1, cur = n; while (cnt < m1 && m1 - cnt <= cur - 1) { int l2 = m1 - cnt, r2 = cur - 1, nxt = 0; while (l2 <= r2) { int m2 = (l2+r2)/2; if (p[m2] * (m1-cnt+1) <= p[cur] * (m1-cnt)) { nxt = m2; l2 = m2 + 1; } else { r2 = m2 - 1; } } cur = nxt; if (nxt != 0) cnt++; } if (cnt == m1) { ans = m1; l1 = m1 + 1; } else { r1 = m1 - 1; } } cout << ans << '\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...