Pagini recente » Cod sursa (job #888275) | Cod sursa (job #1102527) | Cod sursa (job #1577647) | Cod sursa (job #2528416) | Cod sursa (job #3167108)
#include <bits/stdc++.h>
using namespace std;
short v[15];
bool col[15], left_diag[30], right_diag[30];
int n, nrsol, k, i;
void bkt(){
int j;
if(i > n){
if(++nrsol <= 1) {
for (k = 1; k <= n; k++)
printf("%hd ", v[k]);
printf("\n");
}
}
else for(j = 1; j <= n; j++)
if(col[j] + left_diag[i - j + n] + right_diag[i + j - 1] == 0){
col[j] = left_diag[i - j + n] = right_diag[i + j - 1]= true;
v[i] = j;
++i;
bkt();
--i;
v[i] = 0;
col[j] = left_diag[i - j + n] = right_diag[i + j - 1] = false;
}
}
int main() {
//int ;
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d", &n);
i = 1;
bkt();
printf("%d\n", nrsol);
return 0;
}