Pagini recente » Cod sursa (job #1806093) | Cod sursa (job #1196018) | Cod sursa (job #2668165) | Cod sursa (job #2943673) | Cod sursa (job #1913234)
#include <cstdio>
#define N 14
using namespace std;
int n, nr, sol[N];
int vizc[N], vizdp[N], vizds[N];
void afisare()
{
for(int i=0;i<n;i++)
printf("%d ", sol[i]);
}
void bt(int k)
{
if(k==n)
{
if(nr==0)
afisare();
nr++;
return;
}
for(int v=0;v<n;v++)
if(!vizc[v] && !vizds[v+k] && !vizdp[v-k+n])
{
sol[k]=v+1;
vizc[v]=1;
vizds[v+k]=1;
vizdp[v-k+n]=1;
bt(k+1);
vizc[v]=0;
vizds[v+k]=0;
vizdp[v-k+n]=0;
}
}
int main()
{
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d", &n);
bt(0);
printf("\n%d", nr);
return 0;
}