Submission #1247888

#TimeUsernameProblemLanguageResultExecution timeMemory
1247888tvgk도넛 (JOI14_ho_t3)C++20
100 / 100
82 ms2756 KiB
#include<bits/stdc++.h> using namespace std; #define task "a" #define se second #define fi first #define ll long long #define ii pair<ll, ll> const long mxN = 1e5 + 7; int n, a[mxN * 2]; ll pre[mxN * 2]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen(task".INP", "r", stdin); //freopen(task".OUT", "w", stdout); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; a[i + n] = a[i]; } for (int i = 1; i <= 2 * n; i++) pre[i] = pre[i - 1] + a[i]; ll ans = 0; for (int i = 0; i < n; i++) { ll l = 0, r = n; while (l <= r) { int mid = (l + r) / 2; int j = i + mid; int k = lower_bound(pre + j + 1, pre + n + i, pre[j] + pre[j] - pre[i]) - pre; if (pre[i + n] - pre[k] >= pre[j] - pre[i]) { l = mid + 1; ans = max(ans, pre[j] - pre[i]); } else r = mid - 1; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...