#include <iostream> #include <cstring> #include <string> #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <queue> #include <map> #define inf 0x3f3f3f3f #define ll __int64 using namespace std; int k,i,ans,sum,anss,anse,e,s,a[10005]; int main() { while(scanf("%d",&k)&&k) { for(i=0;i<k;i++) scanf("%d",&a[i]); sum=ans=s=e=anss=anse=a[0]; for(i=1;i<k;i++) { if(sum>0) { sum+=a[i]; e=a[i]; } if(sum<=0) { sum=a[i]; s=e=a[i]; } if(sum>ans) { ans=sum; anss=s; anse=e; } } if(ans>=0) printf("%d %d %d\n",ans,anss,anse); else printf("0 %d %d\n",a[0],a[k-1]); } return 0; }
原文:http://blog.csdn.net/u011032846/article/details/19013981