#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int p,d[1<<15],n;
bool vis[1<<15];
void prev()
{
memset(vis,0,sizeof vis);
p=0;
}
void dfs(int u)
{
int to1=(u<<1)&((1<<n)-1);
int to2=to1+1;
if(!vis[to1])
{
vis[to1]=true;
dfs(to1);
d[++p]=0;
}
if(!vis[to2])
{
vis[to2]=true;
dfs(to2);
d[++p]=1;
}
}
void go()
{
dfs(0);
printf("%d ",1<<n);
for(int i=1;i<n;i++) printf("0");
for(int i=p;i>=n;i--) printf("%d",d[i]);
printf("\n");
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
prev();
go();
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-1296267.html