Pagini recente » Cod sursa (job #76797) | Cod sursa (job #1926419) | Cod sursa (job #2267652) | Cod sursa (job #1310869) | Cod sursa (job #2825524)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int sol[14], n, nr_sol, ok, vect_pos[14];
ifstream fin("damesah.in");
ofstream fout("damesah.out");
bool valid(int k, int pos2){
for(int x = 1; x < k; ++x){
if(((x == k) || (vect_pos[x] == pos2)) || (abs(k - x) == abs(pos2 - vect_pos[x]))){
return 0;
}
}
return 1;
}
void bkt(int k){
if(k == n + 1){
if(!ok){
for(int i = 1; i <= n; ++i){
fout << sol[i] << " ";
}
fout << "\n";
ok = 1;
}
nr_sol++;
return;
}
for(int i = k; i <= n; ++i){
for(int j = 1; j <= n; ++j){
if(valid(i, j)){
sol[i] = j;
vect_pos[k] = j;
bkt(k + 1);
}
}
}
}
int main(){
fin >> n;
bkt(1);
fout << nr_sol << "\n";
return 0;
}