记录编号 35712 评测结果 AAEEEEEE
题目名称 神奇的数列 最终得分 25
用户昵称 GravatarTruth.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);
}