#include<bits/stdc++.h>
using namespace std;
int n,a[200005],dp[200005],dp1[200005],sum=0,ans=0,maxx=-1e9,maxn[200005],maxn1[200005],maxn2=-0x3f;
int dp2[200005],dp3[200005],maxn3[200005],maxn4[200005],maxn5=0x7f7f7f7f;
int main (){
cin>>n;
memset(maxn,-0x7f,sizeof(maxn));
memset(maxn1,-0x7f,sizeof(maxn1));
memset(maxn3,0x7f7f7f7f,sizeof(maxn3));
memset(maxn4,0x7f7f7f7f,sizeof(maxn4));
for (int i=1;i<=n;++i){
cin>>a[i];
sum+=a[i];
if (a[i]<0) ++ans;
}
if (ans==n){
for (int i=1;i<=n;++i) maxx=max(maxx,a[i]);
cout<<maxx*2<<endl;
return 0;
}
for (int i=1;i<=n;++i){
dp[i]=max(dp[i-1]+a[i],a[i]);
maxn[i]=max(maxn[i-1],dp[i]);
}
for (int i=n;i>=1;--i){
dp1[i]=max(dp1[i+1]+a[i],a[i]);
maxn1[i]=max(maxn1[i+1],dp1[i]);
}
for (int i=1;i<=n;++i) maxn2=max(maxn[i]+maxn1[i],maxn2);
for (int i=1;i<=n;++i){
dp2[i]=min(dp2[i-1]+a[i],a[i]);
maxn3[i]=min(maxn3[i-1],dp2[i]);
}
for (int i=n;i>=1;--i){
dp3[i]=min(dp3[i+1]+a[i],a[i]);
maxn4[i]=min(maxn4[i+1],dp3[i]);
}
for (int i=1;i<=n;++i) maxn5=min(maxn3[i]+maxn4[i],maxn5);
cout<<max(maxn2,(sum-maxn5))<<endl;
return 0;
}