#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> FindMaxSum(vector<int>&arr)
{
vector<int>ret;
bool isFirst = 0;
int sum = arr[0],tsum=arr[0],index_1=0,index_2=0,max=0,maxi=0,maxj=0;
for (int i = 1; i < arr.size(); i++)
{
if (tsum < 0)
{
tsum = arr[i];
index_1 = i;//记录开头
index_2 = 0;//重置结尾
}
else
{
tsum = arr[i] + tsum;
index_2++;//结尾加一
}
if (tsum > sum)
{
sum = tsum;
maxi = index_1;
maxj = index_2;//这个是相对index_1的偏移
}
}
ret.push_back(sum);
ret.push_back(maxi+1);
ret.push_back(maxj+maxi+1);
return ret;
}
int main()
{
int input = 0,index=0,times=0,temp=0;
vector<int>in;
scanf("%d",×);
while (times)
{
scanf("%d", &input);
for (int i = 0; i < input; i++)
{
scanf("%d", &temp);//输入每组的数字
in.push_back(temp);
}
in=FindMaxSum(in);
printf("Case %d:\n", ++index);
printf("%d %d %d\n",in[0],in[1],in[2]);
--times;
if (times)
printf("\n");
in.clear();//清空vector
}
return 0;
}
还是不多说