//最大子列和问题
#include<stdio.h>
int main(){
int K;//给出正整数K
int M[100000];//给出K个整数
int count;//计数法
int SUM = 0;//遍历求和
int MAX = 0;//初始的最大值为0
scanf("%d", &K);
for(int i=0;i<K;i++){
scanf("%d",&M[i]);
if(M[i]<0){
count++;
}
}
if(count==K){//所有的数都是0的情况下
printf("0");
}
for(int i = 0; i < K; i++){
//从元素1开始
SUM = 0;//每次循环求和的时候,求和都要变为0才行
for(int j = i; j < K; j++){
SUM = SUM + M[j];
if(SUM > MAX){
MAX = SUM;
}
}
}
printf("%d",MAX);
}