状态转移方程:sum[i] = max{sum[i-1]+a[i],a[i]}.
#include <stdio.h>
int main()
{
int n, i, t, k, cc, sum;
int a,b, A, B;
scanf("%d", &t);
for(cc=1; cc<=t; cc++)
{
scanf("%d", &n);
int max=-1001;
sum=-11001;
for(i=1; i<=n; i++)
{
scanf("%d", &k);
if(sum+k<k)
sum=k, a=b=i;
else
{
sum+=k;++b;
}
if(sum>max)
{
max=sum; A=a;B=b;
}
}
printf("Case %d:\n", cc);
printf("%d %d %d\n", max, A,B);
if(cc<t) printf("\n");
}
return 0;
}