“连续序列”,直接线性dp即可
因为只能是连续序列,最值无法传递到末尾
所以使用一个maxSum来记录最值

#include<iostream>
#include<math.h>


using namespace std;

int main(){
    
    int N;
    int seq[1000000];
    long long dp[1000000];
    while(cin>>N){
        if(N==0) break;
        cin>>seq[0];
        dp[0] = seq[0];
        int maxSum = dp[0];
        for(int i=1;i<N;i++){
            cin>>seq[i];
            dp[i] = max((long long)seq[i],dp[i-1]+seq[i]);
            if(dp[i]>maxSum) maxSum = dp[i];
        }
        cout<<maxSum<<endl;
    }
    
    return 0;
}