Pagini recente » Cod sursa (job #1773308) | Cod sursa (job #228285) | Cod sursa (job #2195147) | Cod sursa (job #311166) | Cod sursa (job #2601775)
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int N;
int nrsol;
int sol[15];
bool coloana[15],diagonala_stanga[30],diagonala_dreapta[30];
void Afisare ()
{
int i;
for (i=1;i<=N;++i)
{
fout << sol[i] << " ";
}
fout << '\n';
}
void Back (int k)
{
if (k==N+1)
{
++nrsol;
if (nrsol==1)
{
Afisare();
}
}
else
{
int i;
for (i=1;i<=N;++i)
{
if (coloana[i]==0 && diagonala_stanga[i-k+N-1]==0 && diagonala_dreapta[i+k+1]==0)
{
sol[k]=i;
coloana[i]=diagonala_stanga[i-k+N-1]=diagonala_dreapta[i+k+1]=1;
Back(k+1);
coloana[i]=diagonala_stanga[i-k+N-1]=diagonala_dreapta[i+k+1]=0;
}
}
}
}
int main()
{
fin >> N;
Back(1);
fout << nrsol;
fin.close();
fout.close();
return 0;
}