Pagini recente » Cod sursa (job #2461085) | Cod sursa (job #1574401) | Cod sursa (job #1231305) | Cod sursa (job #2068528) | Cod sursa (job #1645279)
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int ctr;
short n, tabla[16][16];
bool prima=1;
struct {
short c, l;
} verif[14];
short nrverif;
bool ok(short i, short j)
{
for(int h=1;h<=nrverif;h++)
{
//sus
if(verif[h].c==j)
return 0;
//stanga
if(j-verif[h].c==verif[h].l-i)
return 0;
//dreapta
if(verif[h].c-j==verif[h].l-i)
return 0;
}
return 1;
}
void bk(int k)
{
if(k==n+1)
{
if(prima)
{
for(int i=1;i<=nrverif;i++)
fout<<verif[i].c<<' ';
fout<<'\n';
ctr++;
prima=0;
}
else
ctr++;
}
for(int j=1;j<=n;j++)
if(ok(k, j))
{
verif[++nrverif].l=k;
verif[nrverif].c=j;
bk(k+1);
verif[nrverif].l=0;
verif[nrverif--].c=0;
}
}
int main()
{
fin>>n;
for(int i=0;i<=n+1;i++)
tabla[i][0]=tabla[i][n+1]=tabla[0][i]=tabla[n+1][i]=-1;
bk(1);
fout<<ctr;
return 0;
}