Cod sursa(job #3139019)

Utilizator SSKMFSS KMF SSKMF Data 24 iunie 2023 10:50:06
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>
using namespace std;

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

int lungime , tabla[14][14] , pozitii[14] , modalitati;

void Afisare ()
{
    for (int indice = 1 ; indice <= lungime ; indice++)
        cout << pozitii[indice] << ' ';
    cout << '\n';
}

bool Valid (int linie , int coloana)
{
    for (int indice = 1 ; indice < linie ; indice++)
        if (pozitii[indice] == coloana || abs(coloana - pozitii[indice]) == linie - indice)
            return false;

    return true;
}

void Backtracking (int linie)
{
    for (int coloana = 1 ; coloana <= lungime ; coloana++)
        if (Valid(linie , coloana))
        {
            pozitii[linie] = coloana;
            if (linie == lungime && ++modalitati == 1)
                Afisare();
            else
                if (linie < lungime)
                    Backtracking(linie + 1);
        }
}

int main ()
{
    cin >> lungime;
    Backtracking(1);
    cout << modalitati;
    cout.close(); cin.close();
    return 0;
}