#include<bits/stdc++.h>
using namespace std;
long long n,a[200010];
long long abc(long long left,long long right){
if(left==right){
if(a[left]>0) return a[left];
else return 0;
}
long long mid=(left+right)/2;
long long ans1=abc(left,mid);
long long ans2=abc(mid+1,right);
long long s1=0,max1=-100005;
for(int i=mid;i>=left;i--){
s1+=a[i];
max1=max(max1,s1);
}
long long s2=0,max2=-100005;
for(int i=mid+1;i<=right;i++){
s2+=a[i];
max2=max(max2,s2);
}
long long ans3=max1+max2;
return max(max(ans1,ans2),ans3);
}
int main(){
scanf("%lld",&n);
for(long long i=1;i<=n;i++) scanf("%lld",&a[i]);
printf("%lld",abc(1,n));
return 0;
}