#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define dd(x) cout<<#x<<" is "<<x<<endl;
#define dd2(x,y) cout<<#x<<" is "<<x<<" "<<#y<<" is "<<y<<endl;
#define dl(x) cout<<#x<<" is "<<endl; for(auto i:x) cout<<i<<' '; cout<<endl;
#define fi first
#define se second
typedef pair<int,int> pii;
const int N = 5e5+5;
int a[N];
int b[N*2];
int p[N*2];
deque<int>v;
signed main(){
ios::sync_with_stdio(0); cin.tie(0);
int n; cin>>n;
vector<int>v;
for(int i=0; i<n; i++) cin>>a[i];
int l = (n+1)/2;
for(int i=n-l+1; i<n; i++) v.pb(a[i]);
for(int i=0; i<n; i++) v.pb(a[i]);
for(int i=0; i<l-1; i++) v.pb(a[i]);
int sum = 0;
for(int i=0; i<l; i++) sum += v[i];
int ptr = l;
vector<int>v1;
while(ptr != v.size()){
v1.pb(sum);
sum = sum + v[ptr] - v[ptr-l];
ptr++;
}
v1.pb(sum);
multiset<int>s;
for(int i=0; i<l; i++) s.insert(v1[i]);
int ans = *s.begin();
for(int i=0; i<n-1; i++){
s.erase(s.find(v1[i]));
s.insert(v1[i+l]);
ans = max(ans,*s.begin());
}
cout<<ans;
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... |