#include <stdio.h>
#include <string.h>
#define MIN -9999999
int main()
{
int k;
int arr[10002];
while(1)
{
int i,max_sum=MIN,first=0,last=0,sum=0,x=0;
int flag=0;
memset(arr,0,sizeof(arr));
scanf("%d",&k);
if(k==0)
{
//printf("0 0 0\n");
break;
//return 0;
}
for (i=0;i<k;i++)
{
scanf("%d",&arr[i]);
if(arr[i]>=0)
flag=1;//如果所有数都为0,则flag=0
}
if (flag==0)
{
printf("%d %d %d\n",0,arr[0],arr[k-1]);
continue;
//return 0;
}
for (i=0;i<k;i++)
{
sum+=arr[i];
if(max_sum<sum)
{
first=arr[x];
last=arr[i];
max_sum=sum;
}
if (sum<0)
{
sum=0;
x=i+1;
}
}
printf("%d %d %d\n",max_sum,first,last);
}
return 0;
}
hdu1231 最大连续子序列
最新推荐文章于 2021-05-25 01:49:32 发布