PAT-最大サブ列と問題

1348 ワード

01-1. 最大サブカラムと問題(20)
時間の制限
10000 ms
メモリ制限
65536 kB
コード長制限
8000 B
クイズルーチン
Standard
K個の整数からなる配列{N 1,N 2,...,NK},「連続サブ列」は{Ni,Ni+1,...,Nj}と定義され,そのうち1<=i<=j<=Kである.「最大サブ列和」は、連続するすべてのサブ列要素の和の中で最大として定義されます.例えば、所与のシーケンス{−2,11,−4,13,−5,−2}は、その連続サブ列{11,−4,13}が最大および20を有する.プログラムを作成し、指定した整数シーケンスの最大サブカラムとを計算する必要があります.
入力形式:
1行目に正の整数K(<=100000)を入力します.2行目にはK個の整数が与えられ、その間はスペースで区切られている.
出力フォーマット:
行に最大のサブカラムとを出力します.シーケンス内のすべての整数が負の場合、0が出力されます.
サンプルを入力:
6
-2 11 -4 13 -5 -2

出力サンプル:
20
/*************************************************************************
	> File Name:        .c
	> Author: ttop5
	> Blog: www.ttop5.net
	> Mail: [email protected]
	> Created Time: 2014 12 10      09 16 13 
 ************************************************************************/
#include
#define MAXN 100000

int main()
{
    int i, N, a[MAXN];
    int ThisSum, MaxSum;
    ThisSum = MaxSum = 0;
    scanf("%d", &N);
    for(i=0; i MaxSum)
        {
            MaxSum = ThisSum;
        }
        else if(ThisSum < 0)
        {
            ThisSum = 0;
        }
    }
    printf("%d
", MaxSum); return 0; }