#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... |