Cod sursa(job #1558974)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 29 decembrie 2015 20:52:03
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<cstdio>
int n,li[100],co[100],d1[100],d2[100],nr,sl[100],m;
void bck(int x)
{
    int i,j;
    if(x<=n)
    {
        i=x;
        for(j=1;j<=n;j++)
        if(li[i]==0 && co[j]==0 && d1[i-j+n]==0 && d2[i-(n-j+1)+n]==0)
        {
            li[i]=1; co[j]=1; d1[i-j+n]=1; d2[i-(n-j+1)+n]=1;
            sl[x]=i*(n+1)+j;
            bck(x+1);
        li[i]=0; co[j]=0; d1[i-j+n]=0; d2[i-(n-j+1)+n]=0;
        }
    }
    else
    {
        nr++;
        if(nr==1)
        {
        for(i=1;i<=n;i++)
        printf("%d ",sl[i]%(n+1));
        }
    }
}
int main()
{
    freopen("damesah.in","r",stdin);
    freopen("damesah.out","w",stdout);
    scanf("%d",&n);
    nr=m=0;
    bck(1);
    printf("\n%d\n",nr);
    return 0;
}