Pagini recente » Cod sursa (job #1356083) | Cod sursa (job #750575) | Cod sursa (job #2698566) | Cod sursa (job #1901712) | Cod sursa (job #1182806)
#include<cstdio>
using namespace std;
int n,sol,st[32];
bool ap[32],a[32],b[32],*d1=a+16,*d2=b+16;
void afis()
{
int i;
for (i=1;i<=n;++i)
printf("%d ",st[i]);
printf("\n");
}
void back(int k)
{
int i;
for (i=1;i<=n;++i)
if (!ap[i] && !d1[i-k] && !d2[n+1-i-k])
{
st[k]=i;
ap[i]=d1[i-k]=d2[n+1-i-k]=true;
if (k<n) back(k+1);
else if (k==n)
{
++sol;
if (sol==1) afis();
}
ap[i]=d1[i-k]=d2[n+1-i-k]=false;
}
}
int main()
{
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
scanf("%d",&n);
back(1);
printf("%d\n",sol);
return 0;
}