#include<iostream>
#include<algorithm>
using namespace std;
const int N = 200010;
int Maxsum(int a[],int left,int right)
{
int sum = 0, rightsum = 0, leftsum = 0,midsum = 0;
int lefts = 0, rights = 0, s1 = 0, s2 = 0;
int center;
if(right == left)
sum = a[left];
else
{
center = (left + right) >> 1;
leftsum = Maxsum(a, left, center);
rightsum = Maxsum(a, center + 1, right);
for (int i = center; i >= left;i--)
{
lefts += a[i];
s1 = max(lefts, s1);
}
for (int j = center + 1; j <= right;j++)
{
rights += a[j];
s2 = max(rights, s2);
}
midsum = s1 + s2;
if(leftsum < midsum)
sum = midsum;
else
sum = leftsum;
sum = max(rightsum, sum);
}
return sum;
}
int main()
{
ios::sync_with_stdio(false);
int n,a[N];
cin >> n;
for (int i = 0; i < n;i++)
cin >> a[i];
cout << Maxsum(a, 0, n - 1) << endl;
return 0;
}