Pagini recente » Cod sursa (job #221952) | Cod sursa (job #722084) | Cod sursa (job #2720568) | Cod sursa (job #211941) | Cod sursa (job #2313403)
#include <bits/stdc++.h>
#define NMAX 14
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
bitset <NMAX> fcol;
bitset <2 * NMAX> diag1, diag2;
int n, ans, v [NMAX];
void afisare (){
for (int i = 1; i <= n; i ++)
fout << v [i] << " ";
fout << '\n';
}
void setch (bool val, int coloana, int linie){
fcol [coloana] = diag1 [coloana - linie + n - 1] = diag2 [linie + coloana] = val;
}
void bkt (int linie){
if (linie == n + 1){
if (!ans)afisare ();
ans ++;
}
else{
for (int coloana = 1; coloana <= n; coloana ++){
if (!fcol [coloana] && !diag1 [coloana - linie + n - 1] && !diag2 [linie + coloana]){
v [linie] = coloana; setch (1, coloana, linie);
bkt (linie + 1); setch (0, coloana, linie);
}
}
}
}
int main (){
fin >> n; bkt (1);
fout << ans;
return 0;
}