我的输出看似没什么问题啊,为什么WA了。。
#include<iostream>
using namespace std;
int d[20],a[20],b[20];
int s[1000];
int n,k=0;
void dfs(int x){
if(x==n+1){
k++;
if(k<=3){
for(int i=1;i<=n;i++) cout<<s[i]<<" ";
cout<<endl;
}
}
else{
for(int i=1;i<=n;i++){
if(!d[i]&&!b[x+i]&&!a[x-i+n]){
d[i]=1;
b[x+i]=1;
a[x-i+n]=1;
s[x]=i;
dfs(x+1);
d[i]=0;
b[x+i]=0;
a[x-i+n]=0;
}
}
}
}
int main(){
cin>>n;
dfs(1);
cout<<k;
return 0;
}