#include <bits/stdc++.h>
using namespace std;
#define yes cout<<"YES"<<'\n'
#define no cout<<"NO"<<'\n'
#define si size()
#define fi first
#define se second
#define ll long long
#define sr sort
#define pb push_back
#define all(x) x.begin(),x.end()
constexpr ll MAXN=4e5+5,INF=1e18,MOD=1e9+7;
ll n,m,i,j,k,p,t,a[MAXN],pref[MAXN],val[MAXN],mapre[MAXN],masuf[MAXN];
ll tinhleft(ll i,ll lenA){
ll sum=a[i];
sum+=pref[min(n,i+lenA)]-pref[i];
lenA-=min(n,i+lenA)-i;
sum+=pref[lenA];
return sum;
}
ll tinhright(ll i,ll lenA){
ll sum=a[i];
sum+=pref[i-1]-pref[max(1ll,i-lenA)-1];
lenA-=i-max(1ll,i-lenA);
sum+=pref[n]-pref[n-lenA];
return sum;
}
struct seg{
ll b[4*MAXN];
void build(ll in,ll l,ll r){
if(l==r)
b[in]=val[l];
else {
ll m=(l+r)/2;
build(in*2,l,m);
build(in*2+1,m+1,r);
b[in]=max(b[in*2],b[in*2+1]);
}
}
ll get(ll in,ll l,ll r,ll l1,ll r1){
if(l>r1||r<l1) return 0;
else if(l>=l1&&r<=r1) return b[in];
else{
ll m=(l+r)/2;
return max(get(in*2,l,m,l1,r1),get(in*2+1,m+1,r,l1,r1));
}
}
} seg;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
#define name "test"
if(fopen(name".inp","r")){
freopen(name".inp","r",stdin);
freopen(name".out","w",stdout);
}
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i];
pref[i]=a[i]+pref[i-1];
}
ll lenA=(n+1)/2,lenB=n-lenA,ans=0;
lenA--;
lenB--;
for(i=1;i<=n;i++)
val[i]=tinhleft(i,lenB);
seg.build(1,1,n);
ll l=1,r=1;
for(i=1;i<=n;i++){
ll sumA=0,sumB=0;
if(i>lenB+1)
sumA=seg.get(1,1,n,1,i-lenB-1);
ll r=min(0ll,i-lenB-1)+n;
sumB=seg.get(1,1,n,i+1,r);
ans=max(ans,pref[n]-max(sumA,sumB));
}
cout<<ans;
return 0;
}
Compilation message (stderr)
hac.cpp: In function 'int main()':
hac.cpp:54:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
54 | freopen(name".inp","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
hac.cpp:55:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
55 | freopen(name".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~| # | 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... |