#include <stdio.h>

int f(int a[], int n) {
    int MaxSum = a[0];
    int currentMax = a[0];
    int begin = 0;
    int end = 0;
    int tempBegin = 0;

    for (int i = 1; i < n; i++) {
        if (a[i] > currentMax + a[i]) {
            currentMax = a[i];
            tempBegin = i;
        } else {
            currentMax = currentMax + a[i];
        }

        if (currentMax > MaxSum) {
            MaxSum = currentMax;
            begin = tempBegin;
            end = i;
        }
    }
    // printf("开始和结束为:%d %d\n", begin, end);
    return MaxSum;
}
int main() {
    int n;
    while (scanf("%d", &n) != EOF) { // 注意 while 处理多个 case
        int a[n];
        for (int i = 0; i < n; i++)
            scanf("%d", &a[i]);
        int max = f(a, n);
        printf("%d\n", max);

    }
    return 0;
}