Pagini recente » Cod sursa (job #1134906) | Cod sursa (job #1566515) | Cod sursa (job #907052) | Cod sursa (job #2142712) | Cod sursa (job #1423335)
#include <cstdio>
#include <cmath>
using namespace std;
FILE *f=fopen("damesah.in","r");
FILE *g=fopen("damesah.out","w");
int n,st[13],i,j,ok=0,nr;
void afis()
{
for(i=0;i<n;i++)
fprintf(g,"%d ",st[i]+1);
fprintf(g,"\n");
}
bool valid(int niv)
{
for(int i=0;i<niv;++i)
if((st[niv]==st[i]) || (abs(st[i]-st[niv])==niv-i))
return 0;
return 1;
}
void back(int niv)
{
if(niv==n)
{
if(ok==0)
{
afis();
ok=1;
}
nr++;
}
else
for(st[niv]=0;st[niv]<n;st[niv]++)
if(valid(niv))
back(niv+1);
}
int main()
{
fscanf(f,"%d",&n);
back(0);
fprintf(g,"%d",nr);
return 0;
}