Cod sursa(job #3270022)

Utilizator mihail_11Ionescu Mihail mihail_11 Data 21 ianuarie 2025 19:13:39
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

using namespace std;
int v[15],n,sol=0;
bool s=false;
int frecv[15];
ifstream fin("damesah.in");
ofstream fout("damesah.out");
void afis()
{
    int i;
    for(i=1;i<=n;++i)
    {
        fout<<v[i]<<' ';
    }
    fout<<'\n';
}
bool verif(int k)
{
    int i;
    for(i=1;i<k;++i)
    {
        if(k-i==v[k]-v[i] || k-i==v[i]-v[k])
            return false;
    }
    return true;
}
void backtr(int k)
{
    int i,j;
    //cout<<k<<' ';
    if(k==n+1)
    {
        if(s==false)
        {
            afis();
            s=true;
        }
        ++sol;
        return;
    }
    for(i=1;i<=n;++i)
    {
        if(frecv[i]==1)
            continue;
        frecv[i]=1;
        v[k]=i;
        //afis(k);
        if(verif(k))
            backtr(k+1);
        v[k]=0;
        frecv[i]=0;
    }
}
int main()
{
    fin>>n;
    backtr(1);
    fout<<sol;
    return 0;
}