题目描述 Description
给定一个长度为n的一个序列A1,A2,…,An,求序列中连续子序列的最大和。
例如:当输入为-5,3,5,7,-15,6,9,27,-36,10时,连续子序列6,9,27的和为42是最大值;而当序列变成-5,3,5,8,-15,6,9,27,-36,10时,连续子序列3,5,8,-15,6,9,27的和为43是最大值。
输入描述 Input Description
第一行为n (n≤1000),第二行为n个数,表示序列Ai(-10000≤Ai≤10000)。
输出描述 Output Description
一个数,表示连续子序列的最大和。
样例输入 Sample Input
10
-5 3 5 8 -15 6 9 27 -36 10
样例输出 Sample Output
43
数据范围及提示 Data Size & Hint
-10000≤Ai≤10000
n≤1000
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int Max=0,sum=0,s;
int n;
int i;
scanf("%d", &n);
for(i=0;i<n;i++)
{
scanf("%d", &s);
sum+=s;
if(Max<sum)
{
Max=sum;
}
if(sum<0)
sum=0;
}
printf("%d\n",Max);
}