您的位置:首页 > 其它

杭电 1231 最大连续子序列

2011-12-03 09:51 281 查看
#include<stdio.h>
#include<string.h>
intk,num[10024],add[10024],pri[10024],pos;
voidcal()
{
intm=0;
for(inti=1;i<=k;++i)
{
if((add[i-1]+num[i])>0&&add[i-1]>0)
{
add[i]=add[i-1]+num[i];
pri[i]=pri[i-1];
}
else
{
if(num[i]>0)
add[i]=num[i];
else
add[i]=0;
}
if(add[i]>add[pos])
pos=i;
}
if(add[pos]==0)
pos=k,pri[k]=1;
if(add[pos]==0)
for(inti=1;i<=k;++i)
if(num[i]==0)
pos=i;
}
intmain()
{
while(scanf("%d",&k),k)
{
memset(add,0,sizeof(add));
memset(num,0,sizeof(num));
pos=pri[0]=0;
for(inti=1;i<=k;++i)
scanf("%d",&num[i]),pri[i]=i;
cal();
printf("%d%d%d\n",add[pos],num[pri[pos]],num[pos]);
}
return0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: