This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bits/stdc++.h"
using namespace std;
int n;
int a[500010];
long long p[500010];
const long long inf = 1e17;
int main(int argc, char const *argv[])
{
ios_base :: sync_with_stdio (false);
cin.tie (0);
cin >> n;
for(int i = 0; i < n; i++) {
cin >> a[i];
}
int move = (n + 1) >> 1;
long long sum = 0;
for(int i = 0; i < move; i++) {
sum += a[i];
}
for(int i = 0; i < n; i++) {
p[i] = sum;
sum -= a[i];
sum += a[(i + move) % n];
}
long long ans = 0;
deque <pair <long long, int>> Q;
for(int i = 0; i < move; i++) {
while(!Q.empty() && Q.back().first >= p[i]) {
Q.pop_back();
}
Q.push_back(make_pair(p[i], i));
}
for(int i = 0; i < n; i++) {
ans = max(ans, Q.front().first);
if(Q.front().second == i) {
Q.pop_front();
}
int id = (i + move) % n;
while(!Q.empty() && Q.back().first >= p[id]) {
Q.pop_back();
}
Q.push_back(make_pair(p[id], id));
}
cout << ans << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |