代码:
#include<cstdio> #include<cstring> using namespace std; int a[10005]; int main() { int n; while(scanf("%d",&n)==1) { int flag=0; for(int i=0;i<n;i++) { scanf("%d",&a[i]); if(a[i]>=0) { flag=1; } } if(!flag) { printf("0 %d %d\n",a[0],a[n-1]); continue; } int s=0,e=0; int ss=0; int sum=a[0]; int maxx=sum; for(int i=1;i<n;i++) { sum+=a[i]; if(sum<a[i]) { sum=a[i]; s=i; } if(maxx<sum) { maxx=sum; ss=s; e=i; } } printf("%d %d %d\n",maxx,a[ss],a[e]); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
pat(A) 1007. Maximum Subsequence Sum(和最大子段)
原文:http://blog.csdn.net/xky1306102chenhong/article/details/47687495