#include<bits/stdc++.h>
#include<math.h>
#include<cmath>
using namespace std;
const int maxn=1100;
bool b1[maxn],b2[maxn],b3[maxn];
int a[maxn],n,ans=0;
void dfs(int x){
if(x>n){
ans++;
if(ans<=3){
for(int i=1;i<=n;i++){
printf("%d ",a[i]);
}
puts(" ");
}
return;
}
for(int i=1;i<=n;i++)
if(b1[i]==0&&b2[x+i]==0&&b3[x-i+15]==0){
a[x]=i;
b1[i]=1;b2[x+i]=1;b3[x-i+15]=1;
dfs(x+1);
b1[i]=0;b2[x+i]=0;b3[x-i+15]=0;
}
}
int main() {
// int n;
cin>>n;
dfs(1);
cout<<ans;
return 0;
}
P1219 [USACO1.5] 八皇后 Checker Challenge
最新推荐文章于 2024-09-11 22:48:33 发布