#include<bits/stdc++.h>
using namespace std;
bool a[100], b[100], c[100], d[100];
long long lj[100], o;
int dfs(int n, int r) {
for (int i = 0; i < n; i++) {
if (!a[i] && !b[r - i + n] && !c[r + i]) {
lj[r] = i + 1;
a[i] = b[r - i + n] = c[r + i] = true;
if (r == n) {
o++;
if (o < 3) {
for (int i = 0; i < n; i++) {
cout << lj[i + 1] << " ";
}
cout << endl;
}
} else {
dfs(n, r + 1);
}
a[i] = b[r - i + n] = c[r + i] = false;
lj[r] = 0;
}
}
return 0;
}
int main() {
int n;
scanf("%d",&n);
dfs(n, 1);
printf("%d", o);
return 0;
}
八皇后
零分求大佬调!!!
对拍1-13全对!!!
测试点全WA!