#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define ii pair<ll, ll>
#define all(a) a.begin(), a.end()
#define iii pair<ll,ii>
using namespace std;
const ll N =1e6+5;
const ll mod = 998244353;
const ll inf=1e18;
ll n,i,j,m,q,k,t,x,y;
ll a[N];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n;
a[0]=0;
for(i=1;i<=n;i++)
{
cin>>a[i];
a[i]+=a[i-1];
}
for(i=n+1;i<=n+n;i++)
a[i]=a[i-n]-a[i-n-1]+a[i-1];
multiset<ll> ms;
for(i=n/2+1;i<=n;i++)
ms.insert(a[i]-a[i-n/2]);
ll res=a[n]-*(--ms.end());
for(i=2;i<=n;i++)
{
ms.erase(ms.find(a[i+n/2-1]-a[i-1]));
ms.insert(a[i+n-1]-a[i+n-1-n/2]);
//cout<<i<<" "<<a[i+n/2]-a[i]<<" "<<a[i+n-1]-a[i+n-1-n/2]<<'\n';
res=max(res,a[n]-*(--ms.end()));
}
cout<<res;
return 0;
}
/*
4
7 6 8 4
2->4 14
3->5
4->6
5->7
2 3
3 4
2->n
3->n+1
*/
# | 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... |