题目描述:找出最大子串和
ac代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
// freopen("1.txt","r",stdin);
ios::sync_with_stdio(0);
cin.tie(0);
int t;
while(cin>>t){
for(int j=1;j<=t;j++){
int n;
int a[100004];
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
int maa=-100000000,l=1,r=1,ma=0,_l=1,mii=-100000000;
for(int i=1;i<=n;i++){
ma+=a[i];
if(ma<0){
ma=0;
_l=i+1;
}
else if(ma>=maa){
maa=ma;
l=_l;
r=i;
}
}
cout<<"Case "<<j<<":"<<endl;
if(maa==-100000000){
int mii=-100000000,l=1;
for(int i=1;i<=n;i++)if(a[i]>mii)l=i,mii=a[i];
cout<<mii<<' '<<l<<' '<<l<<endl;
}
else cout<<maa<<' '<<l<<' '<<r<<endl;
if(j!=t)cout<<endl;
}
}
}

京公网安备 11010502036488号