Cod sursa(job #1722657)

Utilizator Dupree7FMI Ciobanu Andrei Dupree7 Data 28 iunie 2016 17:07:13
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <stdlib.h>

using namespace std;

int n, sol[14], col[70], diag1[70], diag2[70];
unsigned int nr;

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

void bk(int p, int l)
{
    int i;
    if(p > n)
        {
        if(nr < 1)
            {
            for(i = 1; i < p; i++)
                g << sol[i] << " ";
            g << "\n";
            }
        nr++;
        }
    else
            for(i = 1; i < n + 1; i++)
                if(!col[i] && !diag1[l - i] && !diag2[l + i])
                    {
                    sol[p] = i;

                    col[i] = 1;
                    diag1[l - i] = 1;
                    diag2[l + i] = 1;

                    bk(p + 1, l + 1);

                    col[i] = 0;
                    diag1[l - i] = 0;
                    diag2[l + i] = 0;
                    }
}

int main()
{
    f >> n;

    bk(1, 1);
    g << nr;

    return 0;
}