#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(2*n+1);
a[0]=0;
multiset<int> vals;
int SZ=(n+1)/2;
for (int i=1; i<=n; i++) {
cin >> a[i];
a[n+i]=a[i];
}
for (int i=1; i<=2*n; i++) {
a[i]+=a[i-1];
}
int ans=0;
vector<int> ret(n+1, INT_MAX);
for (int i=1; i<=2*n; i++) {
if (i+SZ-1<=2*n) {
vals.insert(a[i+SZ-1]-a[i-1]);
}
if (i > SZ) {
vals.erase(vals.find(a[i-1]-a[i-1-SZ]));
}
int prev=((i-1) % n)+1;
ret[prev]=min(ret[prev], *vals.begin());
}
for (int i=1; i<=n; i++) {
ans=max(ans, ret[i]);
}
cout << ans << '\n';
}
# | 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... |