#include<stdio.h>
int main ()
{
int n,m,b;
int flag1,temp1,temp2,flag2;
int a[1000];
int i,k,sum;
scanf ("%d",&n);
for (k=1;k<=n;k++)
{
temp1=0;temp2=0;
flag1=0;flag2=0;
b=0;
scanf ("%d",&m);
for (i=0;i<m;i++)
scanf ("%d",&a[i]);
b=a[0];
sum=b;
for(i=1;i<m;i++)
{
if(b<0)
{
temp1=i;
temp2=i;
b=a[i];
}
else
{
b+=a[i];
temp2=i;
}
if(b>sum)
{
sum=b;
flag1=temp1;
flag2=temp2;
}
}
printf ("Case %d:\n",k);
printf ("%d ",sum);
printf ("%d %d\n",flag1+1,flag2+1);
}
return 0;
}
最长子段和(动态规划)
最新推荐文章于 2022-12-20 11:18:52 发布