从前往后扫一遍,最水的dp。。
#include<stdio.h>
long long int a[1000005];
int main()
{
int t,n,i,max=0;
scanf("%d",&t);
while(t--)
{
max=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%lld",&a[i]);
for(i=1;i<n;i++)
a[i]=a[i]>(a[i]+a[i-1])?a[i]:(a[i]+a[i-1]);
for(i=0;i<n;i++)
if(a[i]>a[max])
max=i;
if(a[max]<0)
printf("0\n");
else
printf("%lld\n",a[max]);
}
return 0;
}