1 #include<stdio.h>
2 #include<string.h>
3 #include<stdbool.h>
4
5 int i,j,n,m,num,
6 a[10],b[100][10];
7
8 bool f[3][50];
9
10 int
11 pre()
12 {
13 memset(f,1,sizeof(f));
14 memset(a,0,sizeof(a));
15 memset(b,0,sizeof(b));
16 num=0;
17 return 0;
18 }
19
20 void
21 dfs(int x)
22 {
23 int i;
24 if(x==9)
25 {
26 num++;
27 for(i=1;i<=8;i++)
28 b[num][i]=a[i];
29 }
30
31 for(i=1;i<=8;i++)
32 if (f[0][i]&&f[1][x+i]&&f[2][x-i+8])
33 {
34 a[x]=i;
35 f[0][i]=f[1][x+i]=f[2][x-i+8]=0;
36 dfs(x+1);
37 f[0][i]=f[1][x+i]=f[2][x-i+8]=1;
38 }
39 }
40
41 int
42 main()
43 {
44 int cas,i;
45 scanf("%d",&cas);
46 pre();
47 dfs(1);
48 while(cas--)
49 {
50 scanf("%d",&n);
51 for(i=1;i<=8;i++)
52 printf("%d",b[n][i]);
53 printf("
");
54 }
55 return 0;
56 }