|
#include<bits/stdc++.h>
using namespace std;
int n;
bool c[15];
bool e[25];
bool d[25];
int q[15];
int total=0;
void dfs(int x){
if(x==n+1){
total++;
cout<<"No. "<<total<<'\n';
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(q[i]==j) cout<<1;
else cout<<0;
}
cout<<'\n';
}
return;
}
for(int i=1;i<=n;i++){
if(c[i] || e[x+i] || d[n+x-i]) continue;
q[x]=i;
c[i]=e[x+i]=d[n+x-i]=true;
dfs(x+1);
c[i]=e[x+i]=d[n+x-i]=false;
}
}
int main(){
cin>>n;
dfs(1);
return 0;
} |
|