#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
int i,j,t,n,k=1,num;
scanf("%d",&t);
num=t;
while(t--){
int max=-10000,sum=0,begin=0,end=0,pos=0;
int a[100000];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
if(sum>=0){
sum+=a[i];
}
else{
sum=a[i];
pos=i;
}
if(sum>max){
max=sum;
begin=pos;
end=i;
}
}
printf("Case %d:\n",k);
k++;
printf("%d %d %d\n",max,begin+1,end+1);
if(k!=num){
printf("\n");
}
}
return 0;
}
ACM暑期集训——专题一[DP最大子序列]
最新推荐文章于 2024-04-30 20:06:58 发布