Cod sursa(job #1614900)

Utilizator ipus1Stefan Enescu ipus1 Data 26 februarie 2016 11:46:29
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<cstdio>
int n,pp,x;
int st[15],col[15],diag[30],diag2[30];
void back(int k)
    {if(k==n+1)
        {int i;
        if(pp==0)
            {for(i=1;i<=n;i++)
                printf("%d ",st[i]);
            printf("\n");
            pp=1;
            }
        x++;
        }
    else
        {int i;
        for(i=1;i<=n;i++)
            if(col[i]==0&&diag[i+k-1]==0&&diag2[k+n-i]==0)
                {st[k]=i;
                col[i]=1;
                diag[i+k-1]=1;
                diag2[k+n-i]=1;
                back(k+1);
                col[i]=0;
                diag[i+k-1]=0;
                diag2[k+n-i]=0;
                }
        }
    }
int main ()
{freopen ("damesah.in","r",stdin);
freopen ("damesah.out","w",stdout);
scanf("%d",&n);
back(1);
printf("%d",x);
return 0;
}