数字序列

来源:互联网 发布:java线程池框架 编辑:程序博客网 时间:2024/05/05 19:23
题目描述 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);}


1 0