Pagini recente » Cod sursa (job #2946113) | Cod sursa (job #1407183) | Autentificare | Cod sursa (job #2542015)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
bool a[14], ok=1;
int n, sol, v[14];
int abs(int x){
if(x < 0)
return -x;
return x;
}
int check(int ii, int jj){
for(int i=1; i < ii; i++)
if(ii - i == abs(jj - v[i]))
return 0;
return 1;
}
void bt(int k){
if(k > n){
if(ok == 1){
for(int i=1; i<=n; i++)
fout<<v[i]<<" ";
ok=0;
}
sol++;
return;
}
for(int i=1; i<=n; i++)
if(a[i] == 0 && check(k, i) == 1){
a[i]=1;
v[k]=i;
bt(k+1);
a[i]=0;
}
}
int main (){
fin>>n;
bt(1);
fout<<"\n"<<sol;
return 0;
}