#include <bits/stdc++.h>
#include <climits>
using namespace std;

int main() {
    long long n;
    while(cin>>n){
        long long arr[n];
    for(int i =0;i<n;i++)
        cin>>arr[i];
    //开始处理dp
    //dp[i]等于arr[i]和dp[i-1]+arr[i]中大者
    long long dp[n];
    dp[0] = arr[0];
    for(int i =1;i<n;i++)
        dp[i] = max(arr[i],dp[i-1]+arr[i]);
    //输出dp中最大者
    long long max = LLONG_MIN;
    for(auto a :dp){
        if(a>max)max=a;
    }
    cout<<max;
    }
    
    

}
// 64 位输出请用 printf("%lld")

标准dp应用