Pagini recente » Cod sursa (job #1038939) | Cod sursa (job #480279) | Cod sursa (job #2327172) | Cod sursa (job #1694486) | Cod sursa (job #1696635)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int cont=0;
int v[15],n;
int col[15],diag1[30],diag2[30];
void afisare()
{
for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
fout<<'\n';
}
void Bk(int l)
{
if(l==n+1)
{
if(cont<1)
afisare();
cont++;
}
else
for(int c=1;c<=n;c++)
{
if(!col[c] && !diag1[n-l+c] && !diag2[l+c-1])//daca nu sa pus nimic pe coloana c pe diag1 si diag2
{
v[l]=c;
col[c]=1;
diag1[n-l+c]=1;
diag2[l+c-1]=1;
Bk(l+1);
col[c]=0;
diag1[n-l+c]=0;
diag2[l+c-1]=0;
}
}
}
int main()
{
fin>>n;
Bk(1);
fout<<cont;
return 0;
}