#include <stdio.h>
#include <iostream>
using namespace std;
int maxsum(int a[],int left,int right){
int r,l;
if(right-left==1) return a[left];
int m=left+(right-left)/2;
int maxs=max(maxsum(a,left,m),maxsum(a,m,right));
int v=0;l=a[m-1];
for(int i=m-1;i>=left;i--){
l=max(l,v+=a[i]);
}
v=0;r=a[m];
for(int i=m;i<right;i++){
r=max(r,v+=a[i]);
}
return max(maxs,l+r);
}
int main(){
int n;
scanf("%d",&n);
int a[50000];
for(int i=0;i<n;i++){
scanf("%d",a+i);
}
printf("%d\n",maxsum(a,0,n));
}