/*解题思路:
定义一个动态sum,让他不断加上新的数据然后跟这个数据比较 */
#include <stdio.h>
#include <string.h>
int a[100005];
int main()
{
int t;
scanf("%d",&t);
int k=1;
int i,n,s,e,p;
while(t--)
{
memset(a,0,sizeof(a));
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
s=p=e=0;
int sum,maxsum=sum=a[0];
for(i=1;i<n;i++)
{
if(sum+a[i]<a[i]) //是跟每一位进行比较
{
sum=a[i];
p=i;
}
else
{
sum+=a[i];
}
if(sum>maxsum)
{
maxsum=sum;
s=p;
e=i;
}
}
printf("Case %d:\n",k++);
printf("%d %d %d\n",maxsum,s+1,e+1);
if(t)
printf("\n");
}
return 0;
}
定义一个动态sum,让他不断加上新的数据然后跟这个数据比较 */
#include <stdio.h>
#include <string.h>
int a[100005];
int main()
{
int t;
scanf("%d",&t);
int k=1;
int i,n,s,e,p;
while(t--)
{
memset(a,0,sizeof(a));
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
s=p=e=0;
int sum,maxsum=sum=a[0];
for(i=1;i<n;i++)
{
if(sum+a[i]<a[i]) //是跟每一位进行比较
{
sum=a[i];
p=i;
}
else
{
sum+=a[i];
}
if(sum>maxsum)
{
maxsum=sum;
s=p;
e=i;
}
}
printf("Case %d:\n",k++);
printf("%d %d %d\n",maxsum,s+1,e+1);
if(t)
printf("\n");
}
return 0;
}