#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;
}