Cod sursa(job #3163809)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 1 noiembrie 2023 11:27:59
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;

ifstream fin ("damesah.in");
ofstream fout("damesah.out");

int n,i,j;
int sol[12];
int psol[12];
int solutii;
void print()
{
    if(solutii==1)
    {
        for(int i=1;i<=n;i++)
            fout<<sol[i]<<" ";
        fout<<'\n';
    }
}
bool eOk(int k)
{
    for(int i=1;i<k;i++)
    {
        if(sol[k]==sol[i])
            return 0;
        if(k-i==abs(sol[k]-sol[i]))
            return 0;
    }
    return 1;
}
void backtrack(int k)
{
    if(k==n+1)
    {
        solutii++;
        print();
    }
    else
    {
        for(int i=1;i<=n;i++)
        {
            sol[k]=i;
            if(eOk(k))
                backtrack(k+1);
        }
    }
}
int main()
{
    fin>>n;
    backtrack(1);
    fout<<solutii;
    return 0;
}