#include<stdio.h>
/**
给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。
对于S的所有非空连续子序列T,求最大的序列和。
*/
int max_num(int x, int y) {
    if (x > y)
        return x;
    else
        return y;
}

int main() {
    int n, x;
    while (scanf("%d", &n) != EOF) { //输入N个数
        int  sum = 0, max = -999999;
        for (int i = 0; i < n; i++) {
            scanf("%d", &x); //每输入一个数
            sum = max_num(sum + x,
                          x); //比较  输入的数  or  之前序列和  谁大,取大值做为累加和
            if (sum > max)
                max = sum;

        }
        printf("%d", max);


    }



    return  0;
}