注意:
1.<0的不舍去
2.要标出首尾的位置,
3.输出格式
#include<cstdio>
int main()
{
int t,n,a[100111];
scanf("%d",&t);
int cs;
for(cs=1;cs<=t;cs++)
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int now,maxn,flage,p,q;
maxn=a[0];
now=flage=0;
p=q=0;
for(int i=0;i<n;i++)
{
now+=a[i];
if(now>maxn)
{
maxn=now;
q=i;
p=flage;
}
if(now<0)
{
now=0;
flage=i+1; //标记,一旦出现大于maxn的情况可以找到左点
}
}
printf("Case %d:\n",cs);
printf("%d %d %d\n",maxn,p+1,q+1);
if(cs<t)
printf("\n");
}
return 0;
}