#include <iostream>
#include <stdio.h>
using namespace std;
int n;
int a[100000];
int maxsum(){ // 最优方法
int res =0,b=0;
for(int i=0;i<n;i++){ //前面的子段和都为负数
if(b>0) b+=a[i];
else b=a[i]; //重新计算字段和
if(b>res) res=b; // 取最大值
}
return res;
}
int maxsum2(){ //常见方法
int res=0;
for(int i=0;i<n;i++)
{
int b=0;
for(int j=i;j<=n;j++) // 从当前位开始向后计算各字段和
{
b=b+a[j];
if(res<b) // 取最大值
res=b;
}
}
return res;
}
int main()
{
freopen("in.txt","r",stdin);
cin>> n ;
for(int i=0;i<n;i++)
cin >>a[i];
cout << maxsum()<< endl;
return 0;
}