动态规划求和最大子序列
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int num;cin>>num;
int cnt=1;
while(num--){
int n;cin>>n;
int a[100005];
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++){
cin>>a[i];
}
int begin=1,end=1;
int temp=1;
int max=a[1];
for(int i=2;i<=n;i++){
if(a[i-1]>=0){
a[i]=a[i]+a[i-1];
}
else temp=i;
if(a[i]>max){
max=a[i];
begin=temp;
end=i;
}
}
cout<<"Case "<<cnt<<":"<<endl;
cout<<max<<" "<<begin<<" "<<end<<endl;
if(num!=0) cout<<endl;
cnt++;
}
}