Cod sursa(job #1985547)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 28 mai 2017 02:05:08
Problema Problema Damelor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#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);
}