View Code of Problem 19

#include<stdio.h>
int main()
{
    int i,n,num[1000],k,j,smax[1000]={0},sum,t=0,max,flag;
    scanf("%d",&n);
    while(n!=0&&n<=1000000)
    {
        max=0;
        for(i=0;i<n;i++)
            smax[i]=0;
        for(i=0;i<n;i++)
            scanf("%d",&num[i]);
        i=0;
        while(i<n)
        {
            flag=1;
            while(num[i]<=0&&i<n)
                i++;
            if(i>=n&&smax[0]==0)
            {
                max=num[0];
                for(k=1;k<n;k++)
                {
                    if(max<num[k]) max=num[k];
                }
                flag=0;
                break;
            }
            k=i;
            smax[t]=num[k];
            sum=0;
                for(j=k+1;j<n;j++)
                {
                    sum+=num[j];
                    if(sum>0)
                    {
                        smax[t]+=sum;
                        sum=0;
                    }
                }
            t++;
            i++;
        }
        if(flag==1)
        {
            max=smax[0];
            for(i=1;i<t;i++)
            {
                if(max<smax[i]) max=smax[i];
            }
            printf("%d\n",max);
        }
        else printf("%d\n",max);
        scanf("%d",&n);
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 19