1214:八皇后
阿新 • • 發佈:2021-08-05
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 6 const int N=10; 7 int a[N],ans[100],sum; 8 void print(){ 9 int res=0; 10 for(int i=1;i<=8;i++){ 11 for(int j=1;j<=8;j++) 12 if(a[j]==i){ 13 res=res*10+j; 14 break; 15 } 16 } 17 ans[sum++]=res; 18 // cout<<res<<endl; 19 } 20 bool check(int x,int d){ 21 for(int i=1;i<d;i++){ 22 if(a[i]==x||x-a[i]==d-i||x-a[i]==i-d) 23 return 0; 24 } 25 return 1; 26 } 27 void solve(intd){ 28 if(d==9){ 29 print(); 30 return; 31 } 32 for(int i=1;i<=8;i++){ 33 if(check(i,d)){ 34 a[d]=i; 35 solve(d+1); 36 } 37 } 38 } 39 bool compare(int x,int y){ 40 return x<y; 41 } 42 int main(){ 43 solve(1); 44 sort(ans,ans+sum,compare);45 int n,t; 46 cin>>n; 47 while(n--){ 48 cin>>t; 49 cout<<ans[t-1]<<endl; 50 } 51 return 0; 52 }