Pagini recente » Cod sursa (job #2481732) | Cod sursa (job #3205430) | Cod sursa (job #2054630) | Cod sursa (job #1172103) | Cod sursa (job #1998358)
// http://www.infoarena.ro/problema/damesah
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int N,v[20],ok,nr_sol;
void bkt(int lin);
void afisare();
bool valid(int lin);
int main()
{
fin>>N;
bkt(1);
fout<<nr_sol;
return 0;
}
void bkt(int lin) {
if(lin==N+1) {
if(ok==0) {
afisare();
ok=1;
}
nr_sol++;
}
else {
for(int i=1;i<=N;i++) {
v[lin]=i;
if(valid(lin)) bkt(lin+1);
v[lin]=0;
}
}
}
bool valid(int lin) {
int i;
for(i=1;i<lin;i++) {
if(v[i]==v[lin] || lin-i==abs(v[lin]-v[i])) return false;
}
return true;
}
void afisare() {
for(int i=1;i<=N;i++) fout<<v[i]<<" ";
fout<<endl;
}