输入
第1行:整数序列的长度N(2 <= N <= 50000) 第2 - N + 1行:N个整数(-10^9 <= A[i] <= 10^9)
输出
输出最大子段和。
输入示例
6 -2 11 -4 13 -5 -2
输出示例
20
ps:水题就不多说了看代码吧。
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <algorithm>
using namespace std;
#define INF 0x3f3f3f
int main()
{
long long int i,x,n;
while(scanf("%lld",&n)!=EOF)
{
long long int dp=0;
long long int ans=-INF;
for(i=1;i<=n;++i)
{
scanf("%lld",&x);
if(dp>=0)
dp+=x;
else
dp=x;
ans=max(dp,ans);
}
printf("%lld\n",ans);
}
return 0;
}