Pagini recente » Cod sursa (job #1843393) | Cod sursa (job #3222253) | Cod sursa (job #2710585) | Cod sursa (job #1221402) | Cod sursa (job #1880000)
#include <cstdio>
using namespace std;
int n, rasp;
int st[20];
bool c[20], d1[40], d2[40];
void bkt(int l) {
if(l == n + 1) {
if(rasp == 0) {
for(int i = 1; i <= n; ++ i) {
printf("%d ", st[i]);
}
printf("\n");
}
++ rasp;
} else {
for(int i = 1; i <= n; ++ i) {
if(!c[i] && !d1[l - i + n] && !d2[l + i - 1]) {
st[l] = i;
c[i] = d1[l - i + n] = d2[l + i - 1] = 1;
bkt(l + 1);
c[i] = d1[l - i + n] = d2[l + i - 1] = 0;
}
}
}
}
int main() {
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d", &n);
bkt(1);
printf("%d", rasp);
return 0;
}