Cod sursa(job #2522119)

Utilizator As932Stanciu Andreea As932 Data 11 ianuarie 2020 23:52:09
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");

int n;
int sol[15];
int nrVar=0;

void afisare()
{
    for(int i=1;i<=n;i++)
        fout<<sol[i]<<" ";
    fout<<endl;
}

bool verifica(int pas)
{
    for(int i=1;i<pas;i++)
    {
        if(i==pas)
            return false;
        if(sol[i]==sol[pas])
            return false;
        if((sol[i]-i)==(sol[pas]-pas))
            return false;
        if((i+sol[i])==(pas+sol[pas]))
            return false;
    }

    return true;
}

void backtr(int pas)
{
    for(int i=1;i<=n;i++)
    {
        sol[pas]=i;
        if(verifica(pas))
        {
            if(nrVar==0 && pas==n)
                afisare();

            if(pas==n)
                 nrVar++;
            else
                backtr(pas+1);
        }
    }
}

int main()
{
    fin>>n;

    backtr(1);

    fout<<nrVar;

    return 0;
}