#include<stdio.h>
#include<string.h>
#define MAX 100000+10
#define INF 0x3f3f3f
int main()
{
int n,m,j,i,k1,k2,t,sum;
int x,y,sum1;
int s[MAX];
scanf("%d",&t);
m=1;
while(t--)
{
memset(s,0,sizeof(s));
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
x=y=k1=k2=0;
sum=s[0];
sum1=sum;
for(i=1;i<n;i++)
{
if(sum>=0)
{
y=i;
sum+=s[i];
}
else
{
x=i;
y=i;
sum=s[i];
}
if(sum>sum1)
{
sum1=sum;
k1=x;
k2=y;
}
}
printf("Case %d:\n",m++);
printf("%d %d %d\n",sum1,k1+1,k2+1);
if(t!=0)
printf("\n");
}
return 0;
}
原文:http://www.cnblogs.com/tonghao/p/4600739.html