#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=3e5+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;
}
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]=tinhright(i,lenB);
mapre[i]=max(mapre[i-1],val[i]);
}
for(i=n;i>=1;i--){
masuf[i]=max(masuf[i+1],val[i]);
}
for(i=1;i<=n;i++){
ans=max(ans,pref[n]-max(mapre[i-1],masuf[i+1]));
}
cout<<ans;
return 0;
}
Compilation message (stderr)
hac.cpp: In function 'int main()':
hac.cpp:33:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
33 | freopen(name".inp","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
hac.cpp:34:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
34 | 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... |