最大子段和 -- 暴力

来源:互联网 发布:最好用的编程语言 编辑:程序博客网 时间:2024/04/29 06:27
总时间限制: 
1000ms 
内存限制: 
32000kB
描述

对n个整数的序列a1,a2,a3,....an,  元素ai, ai+1,ai+2, ....... aj-1,aj称为其一个子序列。其中 1 <= i <= j <= n。子序列元素之和称为子段和,即, a+ ai+1+ ai+2 +.......+ aj-1+ aj .

现在,给你一个整数序列(n <= 100000),请求出其所有子段和中最大的一个的值。保证所有子段和都可以用long long表示。


输入
第一行是一个整数n,表示序列中整数的个数。
第二行包含n个整数,即a1,a2,a3,....,an
输出
一个整数,为所有子段和中最大的一个的值。
样例输入
6-2 11 -4 13 -5 -2
样例输出
20



代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n,m;
int sum=0,max=0;


scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&m);
sum+=m;
max= (sum>max) ?sum:max;
if(sum<0)
sum=0;
}
printf("%d\n",max);
return 0;
}

0 0
原创粉丝点击