Cod sursa(job #2911408)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 29 iunie 2022 11:22:55
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMAX=14;
int v[NMAX],vizcol[NMAX];
int vizdiag1[2*NMAX];
int vizdiag2[2*NMAX];
int solutii,n;

void backt(int k)
{
    int i;
    if(k==n+1)
    {
        if(solutii==0)
        {
            for(i=1;i<=n;i++)
                fout<<v[i]<<" ";
            fout<<"\n";
        }
        solutii++;
    }
    else
    {
        for(i=1;i<=n;i++)
            if(vizcol[i]==0 && vizdiag1[n+k-i-1]==0 && vizdiag2[i+k-1]==0)
        {
            vizcol[i]=1;
            vizdiag1[n+k-i-1]=1;
            vizdiag2[i+k-1]=1;
            v[k]=i;
            backt(k+1);
            vizcol[i]=0;
            vizdiag1[n+k-i-1]=0;
            vizdiag2[i+k-1]=0;
        }
    }
}

int main()
{
    int i;
    fin>>n;
    backt(1);
    fout<<solutii;
    return 0;
}