Cod sursa(job #1696614)

Utilizator leraValeria lera Data 29 aprilie 2016 15:30:00
Problema Problema Damelor Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int cont=0;
int v[15],n;
int col[15],diag1[16],diag2[16];
void afisare()
{
    for(int i=1;i<=n;i++)
        fout<<v[i]<<" ";
    fout<<'\n';
}
void Bk(int l)
{
    if(l==n+1)
    {
        if(cont<1)
        afisare();
        cont++;
    }
    else
        for(int c=1;c<=n;c++)
        {
            if(!col[c] && !diag1[n-l+c] && !diag2[l+c-1])//daca nu sa pus nimic pe coloana c pe diag1 si diag2
            {
                v[l]=c;
                col[c]=1;
                diag1[n-l+c]=1;
                diag2[l+c-1]=1;
                Bk(l+1);
                col[c]=0;
                diag1[n-l+c]=0;
                diag2[l+c-1]=0;
            }
        }

}
int main()
{
    fin>>n;
    Bk(1);
    fout<<cont;
    return 0;
}