Pagini recente » Cod sursa (job #3166187) | Cod sursa (job #2417111) | Cod sursa (job #1959151) | Cod sursa (job #25455) | Cod sursa (job #1746417)
#include <iostream>
#include <cstdio>
#define NMAX 14
using namespace std;
int N;
int viz1[NMAX],viz2[NMAX],viz3[NMAX];
int x[NMAX];
void citire()
{
scanf("%d",&N);
}
int nr;
void afis()
{
for(int i=1; i<=N; i++)
printf("%d ",x[i]);
printf("\n");
}
int ok=0;
void bec(int k)
{
for(x[k]=1; x[k]<=N; x[k]++)
if(!viz1[x[k]]&&!viz2[k+x[k]]&&!viz3[k-x[k]+N])
if(k==N)
{
if(ok==0)
afis();
ok=1;
nr++;
}
else
{
viz1[x[k]]=viz2[k+x[k]]=viz3[k-x[k]+N]=1;
bec(k+1);
viz1[x[k]]=viz2[k+x[k]]=viz3[k-x[k]+N]=0;
}
}
int main()
{
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
citire();
bec(1);
printf("%d",nr);
return 0;
}