Cod sursa(job #2015818)

Utilizator BovisioNitica Ionut Bogdan Bovisio Data 27 august 2017 17:38:50
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>

using namespace std;

int s[40],n,nrt=0;

void Afis()
{
    for(int i=1;i<=n;i++)
    {
        printf("%i ",s[i]);
    }
    printf("\n");
}

bool Valid(int k)
{
    for(int i=1;i<=k-1;i++)
    {
        if(s[k] == s[i] || s[k] - s[i] == k-i || s[i] - s[k] == k-i)
            return false;
    }
    return true;
}

void Back(int k)
{
    for(int i=1;i<=n;i++)
    {
        s[k] = i;
        if(Valid(k))
        {
            if(k == n)
            {
                nrt++;
                if(nrt < 2)
                    Afis();
            }
            else
                Back(k+1);
        }
    }
}

int main()
{
    freopen("damesah.in","r",stdin);
    freopen("damesah.out","w",stdout);
    scanf("%i",&n);
    Back(1);
    printf("%i",nrt);
    return 0;
}