您的位置:首页 > 其它

hdu1231 最大连续子序列

2013-07-22 18:14 369 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: