1 5 1 2 -1 3 -2
5
输入数据很多,推荐使用scanf进行输入
#include<cstdio>
#include<iostream>
#include<climits>
using namespace std;
const int MAX=1000010;
int a[MAX]={0};
int main()
{
int n,m,maxsum;
scanf("%d",&n);
while(n--)
{
maxsum=-INT_MAX;
scanf("%d",&m);
for(int i=1;i<=m;++i)
{
scanf("%d",&a[i]);
if(a[i-1]>0) a[i]+=a[i-1]; //递推
if(a[i]>maxsum) maxsum=a[i]; //a[i]只会增大不会减小,最优保存
}
printf("%d\n",maxsum);
}
} 原文地址:http://blog.csdn.net/u014492609/article/details/40748279