View Code of Problem 19

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

int main (){
	int n, a[100010], dp[100010];
	while(scanf("%d", &n)==1&&n){
		for(int i = 0;i < n;i++){
			scanf("%d", &a[i]);
		}
		dp[0] = a[0];
		for(int i = 1;i < n;i++){
			dp[i] = max(a[i], dp[i-1]+a[i]);
		}
		int maxn = -1;
		for(int i = 0;i < n;i++){
			if(maxn<dp[i]){
				maxn = dp[i];
			}
		}
		printf("%d\n", maxn);
	}

	return 0;
}

Double click to view unformatted code.


Back to problem 19