比赛 |
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);
}