import java.util.*;
public class Main {
public staticvoidmain(String[] args){
Scanner scan = new Scanner(System.in);while(scan.hasNext()){int length = scan.nextInt();int[] array = new int[length];for(int i =0; i < length; i++){
array[i]= scan.nextInt();}
System.out.println(findResult(array));}}
private staticintfindResult(int[] array){if(array == null || array.length ==0){return0;}//此时ret就表示初始状态int ret = array[0];//从第二个元素开始判断 选取最大值for(int i =1; i < array.length; i++){//选取以当前第i个元素结尾的最大子数组的和
array[i]= Math.max(array[i -1]+ array[i], array[i]);//如果此时的最大连续子数组的和大于前一个就行赋值if(array[i]> ret){
ret = array[i];}}return ret;}}