import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static int getMax(int a,int b){ //获取最大值的函数
    return a>b?a:b; //三目运算符
    } 
    
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int[] array = new int[n]; //初始化数组
            for(int i=0;i<n;i++){
                array[i]=in.nextInt();
            }
            int sum=array[0];  //当做dp[i]
            int max=array[0]; //存储dp[i]中的最大值
            for(int i=1;i<n;i++){  //i是从1开始的,因为0已结先做dp[i-1]l
            sum=getMax(sum+array[i],array[i]);//dp[i]的两种取值,找最大的
            if(sum>max){
                max=sum; //取缔max有两种情况,首先dp[i-1]是正数,然后dp[i]+正数,当然大于原来的max了,或者dp[i-1]为负数此时dp[i]就等于arr[i]
            }

            }
            
            System.out.println(max);
        }
        
    }
}