Cod sursa(job #2055183)

Utilizator tudor.podinaTudor Podina tudor.podina Data 2 noiembrie 2017 22:12:12
Problema Problema Damelor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream cin("damesah.in");
ofstream cout("damesah.out");

int n,sol,st[20];

int afisare()
{
    sol++;
    if(sol==1)
    {
        for(int i=1;i<=n;i++)
            cout<<st[i]<<" ";
        cout<<"\n";
    }
}

int valid(int k)
{
    for(int i=1;i<k;i++)
        if(st[i]==st[k])
            return 0;
    if(st[k]==st[k-1]+1 || st[k]==st[k-1]-1)
        return 0;
    return 1;
}

int backt(int k)
{
    for(int i=1;i<=n;i++)
    {
        st[k]=i;
        if(valid(k))
            if(k==n)
                afisare();
            else backt(k+1);
    }
}

int main()
{
    cin>>n;
    backt(1);
    cout<<sol<<"\n";
    return 0;
}