#include <iostream>
using namespace std;
const long long N=2*1e5+10;
long long a[N],n;
long long maxsum(long long l,long long r)
{
if(l==r) return a[l];
long long mid=(l+r)>>1;
long long maxs=maxsum(l,mid);maxs=max(maxs,maxsum(mid+1,r));
long long L=0,R=0,x=0;
for(long long i=mid+1;i<=r;i++) R=max(R,x+=a[i]);
x=0;
for(long long i=mid;i>=l;i--) L=max(L,x+=a[i]);
return max(maxs,L+R);
}
int main()
{
cin>>n;
for(long long i=1;i<=n;i++)
{
cin>>a[i];
}
cout<<maxsum(1,n)<<'\n';
return 0;
}