yihan0215 @ 2023-05-19 20:53:04
#include<bits/stdc++.h>
using namespace std;
bool s[14][14],c[14],a[26],b[26];
int sum=0,n;
void dfs(int cus)
{
bool f1=false;
if(cus==n)
{
for(int i=1;i<=n;i++)
{
if(a[cus+i]&&b[i-cus+n]&&c[i])
{
f1=true;
s[cus][i]=true;
break;
}
}
if(f1)
{
sum++;
if(sum<=3)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(s[i][j]&&j<=n) cout<<j<<" ";
}
}
cout<<endl;
}
}
}
else{
for(int i=1;i<=n;i++)
{
if(c[i]&&b[i-cus+n]&&a[i+cus])
{
c[i]=false;
b[i-cus+n]=false;
a[i+cus]=false;
s[cus][i]=true;
dfs(cus+1);
c[i]=true;
b[i-cus+n]=true;
a[i+cus]=true;
s[cus][i]=false;
}
}
}
}
int main()
{
cin>>n;
memset(s,false,sizeof(s));
memset(a,true,sizeof(a));
memset(b,true,sizeof(b));
memset(c,true,sizeof(c));
dfs(1);
cout<<sum;
}