#include<cstdio>
#include<iostream>
#include<climits>
using namespace std;
#define N 1000000
long long a[N + 1];
long long dp[N + 1];
long long maxsub(int n) {
long long maximun = -INT_MAX;
for (int i = 0 ; i < n ; ++i) {
if (i == 0 ) { //只有一个元素
dp[i] = a[i];
} else {
dp[i] = max(a[i], a[i] + dp[i - 1]);
}
maximun = max(maximun, dp[i]);
}
return maximun;
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
for (int i = 0 ; i < n ; ++i) {
scanf("%lld", &a[i]);
}
long long answer = maxsub(n);
printf("%lld\n", answer);
}
}