#include <iostream> #include <string> #include <algorithm> #include <cmath> #include <vector> using namespace std; bool col[10]; bool flag1[40]; bool flag2[40]; int v[10]; long long answ[100]; int ans=0; int k=0; int n; void dfs(int cnt) { if(cnt > 8) { // v.push_back(s); ans++; answ[ans]=0; if(ans==n) { for(int i=0;i<8;i++) { cout<<v[i]; } cout<<endl; } return ; } for(int i=1;i<=8;i++) { if(col[i]==0&&flag1[cnt-i+10]==0&&flag2[cnt+i]==0) { col[i]=1; flag1[cnt-i+10]=1; flag2[cnt+i]=1; v[k++]=i; dfs(cnt+1); col[i]=0; flag1[cnt-i+10]=0; flag2[cnt+i]=0; k--; } } } int main() { // int n; cin>>n; dfs(1); // cout<<answ[n]<<endl; // cout<<v[n-1]<<endl; } // 64 位输出请用 printf("%lld")