Pagini recente » Cod sursa (job #2091009) | Cod sursa (job #2647185) | Cod sursa (job #163848) | Cod sursa (job #2862852) | Cod sursa (job #2030582)
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
int sol[14],n,v;
bool f;
ifstream in ("damesah.in");
ofstream out ("damesah.out");
int conditie (int n)
{
int i;
for (i=1;i<n;i++)
if (sol[n]==sol[i] || abs(i-n)==abs(sol[n]-sol[i]))
return 0;
return 1;
}
void tiparire()
{
int i;
for(i=1;i<=n;i++)
out<<sol[i]<<" ";
out<<"\n";
f=1;
}
void Back (int k)
{
int i;
for (i=1;i<=n;i++)
{
//cout<<"1";
sol[k]=i;
if (conditie(k))
{
//cout<<"2";
if(k==n)
{
if (!f)tiparire();
v++;
}
else Back(k+1);
}
}
}
int main()
{
in>>n;
Back(1);
out<<v;
}