Submission #1225108

#TimeUsernameProblemLanguageResultExecution timeMemory
1225108jellybeanHacker (BOI15_hac)C++20
20 / 100
287 ms29708 KiB
#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++;
	}
	
	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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...