Cod sursa(job #1195200)

Utilizator horatiu11Ilie Ovidiu Horatiu horatiu11 Data 6 iunie 2014 17:38:29
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
//horatiu11
# include <cstdio>
# include <cstdlib>
using namespace std;
int n,nrsol,st[15],ap[15],ok;
inline void tipar(int k)
{
    nrsol++;
    if(!ok)
    {
        for(int i=1;i<=n;++i)
            printf("%d ",st[i]);
        ok=1;
    }
}
inline bool valid(int k)
{
    for(int i=1;i<k;++i)
        if(k-i==abs(st[k]-st[i]))return false;
    return true;
}
void back(int k)
{
    for(int x=1;x<=n;++x)
    {
        st[k]=x;
        if(ap[st[k]]==0 && valid(k))
        {
            ap[st[k]]=1;
            if(k==n)tipar(k);
            else back(k+1);
            ap[st[k]]=0;
        }
    }
}
int main()
{
    freopen("damesah.in","r",stdin);
    freopen("damesah.out","w",stdout);
    scanf("%d",&n);
    back(1);
    printf("\n%d\n",nrsol);
    return 0;
}