Pagini recente » Cod sursa (job #56868) | Cod sursa (job #1743230) | Cod sursa (job #3167884) | Cod sursa (job #1611667) | Cod sursa (job #2292681)
#include <stdio.h>
#include <cmath>
using namespace std;
/*
ifstream fin("damesah.in");
ofstream fout("damesah.out");
*/
int n;
int x[14],viz[14],nrsol;
void Afisare()
{int i;
for(i=1;i<=n;i++) printf("%d ", x[i]);
printf("\n");
}
inline int Valid(int k)
{int i;
for(i=1;i<k;i++)
if(k-i==abs(x[k]-x[i])) return 0;
return 1;
}
void Back(int k)
{int i;
for(i=1;i<=n;i++)
if(viz[i]==0)
{x[k]=i; viz[i]=1;
if(Valid(k))
if(k==n)
{nrsol++;
if(nrsol==1) Afisare();
}
else Back(k+1);
viz[i]=0;
}
}
int main()
{
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d", &n);
fclose(stdin);
Back(1);
printf("%d\n", nrsol);
fclose(stdout);
return 0;
}