#include <stdio.h>
#include <malloc.h>
//关键点在第17行,理解为如果前面的累加结果是累赘即<0,那么就断掉
int main() {
int len ;
scanf("%d",&len);
int *array=(int*)malloc(sizeof(int)*len);
int *dp=(int*)malloc(sizeof(int)*len);
for(int i = 0;i<len;i++){
    int a;
scanf("%d",&a);
array[i] = a;
}
dp[0] = array[0];
int res = array[0];
for(int i = 1;i<len;i++){
    dp[i] = dp[i-1]+array[i]> array[i]?dp[i-1]+array[i]:array[i];
     res =res>dp[i]?res:dp[i];
}
printf("%d",res);
    return 0;
}