Pagini recente » Cod sursa (job #1869963) | Cod sursa (job #2340860) | Cod sursa (job #2727233) | Cod sursa (job #3236229) | Cod sursa (job #1118277)
#include<cstdio>
using namespace std;
int n,nrsol,st[100],e;
int col[100],dfirst[100],dsec[100],v[100];
void afis()
{
++nrsol;
if (e==0)
{
for (int i=1;i<=n;++i) printf("%d ",st[i]);
e=1;
}
}
void back(int k)
{
int i;
if (k==n+1) afis();
else
{
for (i=1;i<=n;++i)
{
if (col[i]==0 && dfirst[i-k+n]==0 && dsec[k+i-1]==0)
{
st[k]=i;
col[i]=1;
dfirst[i-k+n]=1;
dsec[k+i-1]=1;
back(k+1);
col[i]=0;
dfirst[i-k+n]=0;
dsec[k+i-1]=0;
}
}
}
}
int main()
{
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;++i) v[i]=10000;
back(1);
printf("\n%d\n",nrsol);
return 0;
}