Cod sursa(job #1443305)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 27 mai 2015 16:30:46
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;

ifstream f("damesah.in");
ofstream g("damesah.out");

int n;
bool Diag1[30], Diag2[30], Coloana[15];
int poz[15];
int nrs;
bool prima = true;

void bkt(int k)
{
    int i = 0;
    if (k == n+1)
    {
        if (prima)
        {
            for (i = 1; i <= n; i++)
                g << poz[i] << " ";
            g << "\n";
            prima = false;
        }
        nrs++;

    }
    else
        for (i = 1; i <= n; i++)
            if (!Coloana[i] && !Diag1[n-k+i] && !Diag2[k+i-1])
            {
                poz[k] = i;
                Coloana[i] = Diag1[n-k+i] = Diag2[k+i-1] = true;
                bkt(k+1);
                Coloana[i] = Diag1[n-k+i] = Diag2[k+i-1] = false;
            }
}

int main()
{
    f >> n;
    bkt(1);
    g << nrs;
    return 0;
}