#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
const int N=105;
int n,sum=0,s=0;
bool a[N][N],b[N][N];
void bhh(int x,int y){
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x-k][y-k]=true;
}
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x-k][y+k]=true;
}
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x+k][y-k]=true;
}
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x+k][y+k]=true;
}
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x][y+k]=true;
}
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x+k][y]=true;
}
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x-k][y]=true;
}
for(int k=0;k<n;k++){
if(x<0||x>=n||y<0||y>=n){
break;
}
b[x][y-k]=true;
}
}
void print(){
s=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(a[i][j]==true){
s++;
}
}
}
if(s==n){
sum++;
for(int j=0;j<n;j++){
for(int i=0;i<n;i++){
if(a[i][j]==true&&sum<=3){
cout<<i+1<<" ";
}
}
}
cout<<endl;
}
}
void dfs(int x,int y){
a[x][y]=true;
print();
bhh(x,y);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<a[i][j];
}
cout<<endl;
}
cout<<endl;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(b[i][j]==false){
dfs(i,j);
}
}
}
return ;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
dfs(i,j);
}
}
cout<<sum;
return 0;
}
哭了,给大佬磕一个