Cod sursa(job #3163811)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 1 noiembrie 2023 11:34:46
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;

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

int n;
int x[30],f[30];
int sol;
bool found;
int verif(int pas)
{
    for(int i=1;i<pas;i++)
        if(pas-i==abs(x[pas]-x[i]))
            return 0;
    return 1;
}
void backtrack(int pas)
{
    if(pas==n+1)
    {
        if(!found)
        {
            for(int i=1;i<=n;i++)
                fout<<x[i]<<" ";
            fout<<'\n';
        }
        sol++;
        found=1;
    }
    else
        for(int i=1;i<=n;i++)
            if(f[i]==0)
            {
                x[pas]=i;
                f[i]=1;
                if(verif(pas))
                    backtrack(pas+1);
                f[i]=0;
            }
}
int main()
{
    fin>>n;
    backtrack(1);
    fout<<sol;
    return 0;
}