#include <stdio.h>

/*获取连续最大数组和*/
int max_sum(int *data, int a)
{
    int sum=data[0];    //连续最大数组和
    int temp_sum=data[0];   //当前和值

    for(int i=0;i<a;i++)
    {
        temp_sum=(temp_sum > 0)? temp_sum+data[i] : data[i]; 

        if(temp_sum>sum)    //经过一次运算后,判断是否需要替换掉最大值
            sum=temp_sum;
    }
    return sum;
}

int main() 
{
    int a;
    scanf("%d",&a);
    int data[a];
    for(int i=0;i<a;i++)
    {
        scanf("%d",&data[i]);
    }
    
    int max=max_sum(data, a);
    printf("%d\n",max);

    return 0;
}