Cod sursa(job #1644240)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 9 martie 2016 22:09:52
Problema Problema Damelor Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

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

short n;
int nr;
int sol[20];
bool diag1[20], diag2[20], lin[20];

void bkt(int k)
{
    int i;
    if (k == n+1)
    {
        if (nr == 0)
            for (i = 1; i <= n; i++)
                g << sol[i] << " ";
        nr++;
    }
    else
    {
        for (i = 1; i <= n; i++)
        if (diag1[n-i+k] == 0 && diag2[k+i-1] == 0 && lin[i] == 0)
        {
            diag1[n-i+k] = diag2[k+i-1] = lin[i] = 1;
            sol[k] = i;
            bkt(k+1);
            diag1[n-i+k] = diag2[k+i-1] = lin[i] = 0;
        }
    }
}

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