6 -2 11 -4 13 -5 -2 10 -10 1 2 3 4 -5 -23 3 7 -21 6 5 -8 3 2 5 0 1 10 3 -1 -5 -2 3 -1 0 -2 0
20 11 13 10 1 4 10 3 5 10 10 10 0 -1 -2 0 0 0
#include<iostream>
#include<cstring>
using namespace std;
#define M 100005
int a[M];
int main()
{
int n;
while(~scanf("%d",&n) && n)
{
int ans,max,i,x1,y1,p,k=0;
scanf("%d",a+1);
if(a[1]<0) k++;
ans=max=a[1];
x1=y1=p=1;
for(i=2;i<=n;i++)
{
scanf("%d",a+i);
if(a[i]<0) k++;
if(ans<0)
ans=a[i],p=i;
else
ans+=a[i];
if(max<ans)
max=ans,x1=p,y1=i;
}
if(k==n)
printf("%d %d %d\n",0,a[1],a[n]);
else
printf("%d %d %d\n",max,a[x1],a[y1]);
}
return 0;
}
HDUJ 1231 最大连续子序列,布布扣,bubuko.com
原文地址:http://blog.csdn.net/hyccfy/article/details/38301419