Cod sursa(job #3163169)

Utilizator raluk_infoRaluca C raluk_info Data 30 octombrie 2023 19:03:01
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n, x[20], cate, use[20];
void afis(int k)
{
    cate++;
    if(cate == 1)
    {
        for(int i=1; i<=k; ++i)
            fout<<x[i]<<' ';
        fout<<'\n';
    }
}
bool valid(int k)
{
    for(int i=1; i<k; ++i)
        if(k-i==x[k]-x[i] || k-i == x[i]-x[k])
            return 0;
    return 1;
}
void BKT(int k)
{
    for(int i=1; i<=n; ++i)
        if(use[i] == 0)
        {
            x[k]=i;
            use[i]=1;
            if(valid(k))
                if(k==n)
                    afis(k);
                else
                    BKT(k+1);
            use[i]=0;
        }
}
int main()
{
    fin >>n;
    BKT(1);
    fout<<cate<<'\n';
    return 0;
}