1142-最大连续和

描述

给出一个长度为n的序列A1A2An,求最大的连续和。要求找到1ij n,使得Ai+Ai+1+…+Aj尽量大。

输入

1行输入一个正整数nn1000),此后输入n行,每行给出一个测试用例,包含正整数mm个整数,以空格分隔各个数。

输出

输出n行。对于每一个测试用例,在一行输出最大的连续和。

样例输入

2

3 1 -1 3

3 1 2 3

样例输出

3

6

#include<stdio.h>
int a[1001],s[1001];
int main()
{
    int t,n,i,max,min;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);
        s[0]=0;
        for(i=1;i<=n;i++)
            s[i]=s[i-1]+a[i];
        max=-0x7fffffff;
        min=s[0];
        for(i=1;i<=n;i++)
        {
            if(s[i]-min>max)
                max=s[i]-min;
            if(s[i]<min)
                min=s[i];
        }
        printf("%d
",max);
    }
}  

  

原文地址:https://www.cnblogs.com/Rosanna/p/3436933.html