#include <iostream>
using namespace std;
#define MAXN 10010
int main()
{
int num[MAXN];
int n,flag=0,flag0=0;
cin>>n;
int bg=0,ed=0,sum=0,maxsum=0,tb=0;
for(int i=0;i<n;i++){
cin>>num[i];
if(num[i]>0){
flag=1;
}else if(num[i]==0){
flag0=1;
}
sum+=num[i];
if(sum<0){
sum=0;
tb=i+1;
}
if(sum>maxsum){
maxsum=sum;
bg=tb;
ed=i;
}
}
if(flag==0&&flag0==0){
cout<<0<<" "<<num[0]<<" "<<num[n-1]<<endl;
}else if(flag==0&&flag0==1){
cout<<0<<" "<<0<<" "<<0<<endl;
}
else{
cout<<maxsum<<" "<<num[bg]<<" "<<num[ed]<<endl;
}
return 0;
}
注意
4
-1 0 0 -1这种情况
应该输出
0 0 0
很巧妙的数据