贪心法;
从头到尾遍历,控制好头指针和尾指针的位置即可;
AC代码如下:
#include <stdio.h>
int s1[100100];
int main()
{
int T,n,i,s,l,r,sum,f,t;
scanf("%d",&T);
f=0;
t=T;
while(T--)
{
f++;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s1[i]);
}
int sum1=s1[0];
s=0;
l=0;
r=0;
sum=0;
for(i=0;i<n;i++)
{
sum+=s1[i];
if(sum1<=sum)
{
sum1=sum;
r=s;
l=i;
}
if(sum<0)
{
s=i+1;
sum=0;
}
}
printf("Case %d:\n",f);
printf("%d %d %d\n",sum1,r+1,l+1);
if(T!=0)
{
printf("\n");
}
}
return 0;
}