Submission #949375

#TimeUsernameProblemLanguageResultExecution timeMemory
949375Faisal_SaqibHacker (BOI15_hac)C++17
100 / 100
406 ms56228 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=5e5+100;
#define int long long
signed main()
{
	cin.tie(0);
	cout.tie(0);
	ios::sync_with_stdio(0);
	int n;
	cin>>n;
	vector<int> a,b;
	for(int i=0;i<n;i++)
	{
		int x;
		cin>>x;
		a.push_back(x);
	}
	for(auto y:a)
		b.push_back(y);
	for(auto y:a)
		b.push_back(y);
	for(auto y:a)
		b.push_back(y);
	vector<int> pre={0};
	for(int i:b)
		pre.push_back(pre.back()+i);
	int sz=n-(n/2);
	int mx=0;
	vector<int> sp={0};
	for(int i=n+1;i<=(2*n);i++)
		sp.push_back(pre[i+sz-1]-pre[i-1]);
	for(int i=n+1;i<=(2*n);i++)
		sp.push_back(pre[i+sz-1]-pre[i-1]);
	set<pair<int,int>> tpp;
	for(int j=1;j<=sz;j++)
		tpp.insert({sp[j],j});
	mx=begin(tpp)->first;
	for(int i=sz+1;i<=(2*n);i++)
	{
		tpp.insert({sp[i],i});
		tpp.erase({sp[i-sz],i-sz});
		mx=max(mx,begin(tpp)->first);
	}
	cout<<mx<<endl;
	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...