Cod sursa(job #2819835)

Utilizator KarinAAndrei Karina KarinA Data 19 decembrie 2021 11:26:07
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

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

long long n,a[15],sol,viz[15];

void afis()
{
    for(long long i=1;i<=n;i++)
        out<<a[i]<<" ";
    out<<'\n';
}

bool verif(long long val)
{
    if(val==1)
        return 1;
    for(long long i=1;i<val;i++)
        if(abs(a[i]-a[val])==val-i)
        return 0;
    return 1;
}

void backtrack(long long val)
{
    for(long long i=1;i<=n;i++)
    if(viz[i]==0)
    {
        a[val]=i;
        viz[i]=1;
        if(verif(val))
        {
            if(val==n)
            {
                sol++;
                if(sol==1)
                    afis();
            }
            else backtrack(val+1);
        }
        viz[i]=0;
    }
}

int main()
{
    in>>n;
    backtrack(1);
    out<<sol<<'\n';
}