比赛 20120224 评测结果 EEEEEEEE
题目名称 神奇的数列 最终得分 0
用户昵称 Truth.Cirno 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-02-24 21:58:41
显示代码纯文本
#include <cstdio>
#include <vector>
using namespace std;

typedef vector<int> vec;
vec que[500000];
int len[500000];

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);
	que[0].push_back(0);
	que[0].push_back(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;
					que[head]=que[tail];
					que[head].push_back(temp);
					if (temp==n)
						done=true;
				}
			}
		que[tail].~vector<int>();
		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);
}