Pagini recente » Cod sursa (job #2807787) | Cod sursa (job #2753323) | Cod sursa (job #1809980) | Cod sursa (job #361513) | Cod sursa (job #1985547)
#include <cstdio>
int sol[20];
int as,ct,n;
bool col[20],d1[20],d2[20];
void afis()
{
for(int i=1; i<=n; i++) printf("%d ",sol[i]);
printf("\n");
}
void backtrack(int pos,int rr)
{
for(int i=rr; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(col[j]==0&&d1[i-j+n-1]==0&&d2[i+j]==0)
{
col[j]=d1[i-j+n-1]=d2[i+j]=1;
if(ct==0) sol[pos]=j;
if(pos<n) backtrack(pos+1,i+1);
else
{
if(ct==0)
{
for(int k=1; k<=n; k++) printf("%d ",sol[k]);
printf("\n");
}
++ct;
}
col[j]=d1[i-j+n-1]=d2[i+j]=0;
}
}
}
}
int main()
{
freopen ("damesah.in","r",stdin);
freopen ("damesah.out","w",stdout);
scanf("%d",&n);
backtrack(1,1);
printf("%d\n",ct);
}