View Code of Problem 19

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int *a,*b;
	a=(int *)malloc(sizeof(int)*1000000);
	b=(int *)malloc(sizeof(int)*1000000);
	
	int n,i;
	int max;
	while(scanf("%d",&n)!=EOF)
	{
		if(n==0)
			break;
		for(i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
		}
		
		b[0]=a[0];
		max=0;
		for(i=1;i<n;i++)
		{
			if(b[i-1]<0)
				b[i]=a[i];
			else
				b[i]=b[i-1]+a[i];	
			
			if(b[i]>max)
					max=b[i];
			
		}
		printf("%d\n",max);
		
	}
	
	
	
	
	return 0;
}

Double click to view unformatted code.


Back to problem 19