显示代码纯文本
#include<cstdio>
#include<deque>
using namespace std;
const int SIZEN=1<<15;
int N,n;
deque<int> s[SIZEN],ans;
void makegragh()
{
scanf("%d",&n);
N=1<<(n-1);
int temp=(1<<(n-1))-1;
for(int i=0;i<N;i++)
{
s[i].push_back(((i<<1)+1)&temp);
s[i].push_back((i<<1)&temp);
}
}
void euler(int x)
{
while(!s[x].empty())
{
int u=s[x][0];
s[x].erase(s[x].begin());
euler(u);
}
ans.push_front(x);
}
void printfans()
{
for(int i=1;i<n-1;i++) printf("0 ");
for(int i=0;i<ans.size();i++) printf("%d ",ans[i]&1);
}
int main()
{
freopen("cowsonparade.in","r",stdin);
freopen("cowsonparade.out","w",stdout);
makegragh();
if(n==1)
{
printf("0 1");
return 0;
}
euler(0);
printfans();
return 0;
}