Cod sursa(job #1468483)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 6 august 2015 10:51:05
Problema Problema Damelor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

using namespace std;

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

int n;
bool praf, Col[16], Diag1[32], Diag2[32]; // praf - se verifica daca prima varianta a fost afisata
int poz[16];

void genereaza(int k)
{
    if (!praf && k == n+1)
    {
        for (int i = 1; i <= n; i++)
            g << poz[i] << " ";
        praf = true;
    }
    else for (int i = 1; i <= n; i++)
        if (!Col[i] && !Diag1[n-k+i] && !Diag2[k+i-1])
        {
            poz[k] = i;
            Col[i] = Diag1[n-k+i] = Diag2[k+i-1] = true;
            genereaza(k+1);
            Col[i] = Diag1[n-k+i] = Diag2[k+i-1] = false;
        }
}

int main()
{
    f >> n;
    genereaza(1);
    return 0;
}