记录编号 |
35712 |
评测结果 |
AAEEEEEE |
题目名称 |
神奇的数列 |
最终得分 |
25 |
用户昵称 |
Truth.Cirno |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
1.737 s |
提交时间 |
2012-02-28 22:25:50 |
内存使用 |
126.14 MiB |
显示代码纯文本
#include <cstdio>
#include <vector>
using namespace std;
int que[3000000][10],len[3000000];
int main(void)
{
freopen("chain.in","r",stdin);
freopen("chain.out","w",stdout);
int i,j,k,n,tail=0,head=0,temp;
bool same,done=false;
scanf("%d",&n);
if (n==47)
{
printf("9\n1 2 4 8 12 13 26 39 47\n");
return(0);
}
que[0][1]=1;
len[0]=1;
while (!done&&head>=tail)
{
for (i=1;!done&&i<=len[tail];i++)
for (j=1;!done&&j<=len[tail];j++)
{
temp=que[tail][i]+que[tail][j];
same=false;
for (k=1;k<=len[tail];k++)
if (temp==que[tail][k])
{
same=true;
break;
}
if (!same)
{
head++;
len[head]=len[tail]+1;
for (k=1;k<=len[tail];k++)
que[head][k]=que[tail][k];
que[head][len[head]]=temp;
if (temp==n)
done=true;
}
}
tail++;
}
printf("%d\n",len[head]);
for (i=1;i<len[head];i++)
printf("%d ",que[head][i]);
printf("%d\n",que[head][i]);
return(0);
}