Submission #1296241

#TimeUsernameProblemLanguageResultExecution timeMemory
1296241Jawad_Akbar_JJHacker (BOI15_hac)C++20
100 / 100
232 ms24188 KiB
#include <iostream>
#include <set>

using namespace std;
long long a[3<<19], Ans, n;

int main(){
  ios_base::sync_with_stdio(false); cin.tie(NULL);
	cin>>n;
	int h = (n + 1) / 2;

	for (int i=1;i<=n;i++)
		cin>>a[i], a[i+n] = a[i+n+n] = a[i];

	for (int i=1;i<=n+n+n;i++)
		a[i] += a[i-1];

	multiset<long long> st;
	for (int i=n;i>n-h;i--)
		st.insert(a[i + h - 1] - a[i - 1]);

	for (int i=n;i<n+n;i++){
		Ans = max(Ans, *begin(st));
		st.erase(st.find(a[i] - a[i - h]));
		st.insert(a[i + h] - a[i]);
	}
	cout<<Ans<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...