和之前的一题很像,直接套用。
#include<iostream> using namespace std; int main() { int a[10001]; int n,i; int sum,maxsum,start,maxstart,maxend; while(cin>>n && n) { for(i=0;i<n;i++) cin>>a[i]; maxstart=maxend=sum=0; maxsum=-2000000000; start=0; for(i=0;i<n;i++) { sum+=a[i]; if(sum<a[i]) { sum=a[i]; start=i; } if(sum>maxsum) { maxsum=sum; maxstart=start; maxend=i; } } if(maxsum<0) cout<<"0 "<<a[0]<<" "<<a[n-1]<<endl; else cout<<maxsum<<" "<<a[maxstart]<<" "<<a[maxend]<<endl; } return 0; }
原文地址:http://blog.csdn.net/a809146548/article/details/44202583