Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>unsigned short ee[(1 << 15) + 1], m, l;void dfs(unsigned short s){unsigned short t = ((s<<1) &l),i=0;while(i<2){if(ee[(s<<1)+i]){ee[(s<<1)+i]=0;dfs(t+i);putchar(i+'0');}i++;}return;}int main(){int N;scanf("%d", &N);m = 1 << (N - 1);l = m-1;for (int i = 0; i<m; i++){ee[i << 1]++;ee[(i << 1) + 1]++;}dfs(1);return 0;}