Cod sursa(job #3164608)

Utilizator TeodorG8Cirstov Teodor TeodorG8 Data 3 noiembrie 2023 20:40:50
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

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


int n,f[20],poz[20],nrsol;

bool diagonale(int q)
{
    for(int i=1;i<q;i++)
        if(abs(q-i)==abs(poz[q]-poz[i]))
            return 0;
    return 1;
}
void backtracking(int x)
{
    if(x==n+1)
    {
        nrsol++;
        if(nrsol==1)
            for(int i=1;i<=n;i++)
            fout<<poz[i]<<' ';
    }
    else
        for(int i=1;i<=n;i++)
            if(f[i]==0)
            {
                f[i]=1;
                poz[x]=i;
                if(diagonale(x)==1)
                    backtracking(x+1);
                f[i]=0;
            }
}
int main()
{
    fin>>n;
    backtracking(1);
    fout<<'\n'<<nrsol;
    return 0;
}