Pagini recente » Cod sursa (job #2322492) | Cod sursa (job #2784600) | Cod sursa (job #3217170) | Cod sursa (job #2944829) | Cod sursa (job #2642967)
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
const int NMAX=13;
int sol[1+NMAX];
int n;
int nr_total_sol=0;
bool prima_sol=1;
int j;
bool verificare(int linie, int coloana)
{
bool ok=1;
for(int q=1;q<=linie-1 && ok;q++)
{
if(q==linie || sol[q]==coloana || abs(linie-q)==abs(coloana-sol[q]))
{
ok=0;
}
}
return ok;
}
void back(int index)
{
if(index>n)
{
if(prima_sol)
{
for(j=1;j<=n;j++)
{
out<<sol[j]<<' ';
}
out<<'\n';
prima_sol=0;
}
nr_total_sol++;
}
else
{
for(int i=1;i<=n;i++)
{
if(verificare(index,i))
{
sol[index]=i;
back(index+1);
}
}
}
}
int main()
{
in>>n;
back(1);
out<<nr_total_sol;
return 0;
}