View Code of Problem 19

#include <bits/stdc++.h>
 
using namespace std;
int a[1000010];
int dp[1000010];
int main(){
	int n;
	while(~scanf("%d",&n)){
        if(n==0)
            break;
        memset(a,0,sizeof(a));
        memset(dp,0,sizeof(dp));
        for(int i = 0; i < n; ++i){
            scanf("%d",&a[i]);
        }
        dp[0] = a[0];
        int maxn = a[0];
        for(int i = 1; i < n; ++i){
            dp[i] = max(dp[i-1]+a[i],a[i]);
            if(dp[i] > maxn)
                maxn = dp[i];
        }
        printf("%d\n",maxn);
 
	}
}

Double click to view unformatted code.


Back to problem 19