给大家推荐个靠谱的公众号程序员探索之路,大家一起加油
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
for(int i=0;i<t;i++)
{
int n;
scanf("%d",&n);
int sum=0,max=-99999;
int curhead=1,rear=1,head=1;
for(int j=0;j<n;j++)
{
int temp;
scanf("%d",&temp);
if(sum<0)//小于零 说明开始加的是负数
{
curhead=j+1;//重新计算开头元素的位置
sum=temp;
}else//如果大于等于0 就加上temp
{
sum+=temp;
}
if(sum>max)//如果sum超过max 重新记录max 计算结尾元素的位置
{
rear=j+1;
head=curhead;
max=sum;
}
}
printf("Case %d:\n",i+1);
printf("%d %d %d\n",max,head,rear);
if(i!=t-1) printf("\n");
}
}