Cod sursa(job #1874830)

Utilizator ReeeBontea Mihai Reee Data 10 februarie 2017 14:38:01
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cmath>
#include <fstream>

using namespace std;

int v[14], n, sol = 0;

ofstream fout("damesah.out");

void PlaseazaRegina(int k) // Plaseaza regina pe linia k
{
    int i, j, ok;
    if (k == n + 1)
        {
            ++sol;
            if (sol == 1)
                {
                    for (i = 1 ; i <= n ; ++i)
                        fout << v[i] << " ";
                    fout << endl;
                }
        }
    for (i = 1 ; i <= n ; ++i) // Parcurg coloanele
    {
        for (ok = 1 , j = 1; j < k && (ok) ; ++j) // Verific daca nu se bate pozitia mea cu reginele dinainte
            if (i == v[j] || (abs(v[j] - i) == (k - j)))
                ok = 0;
        if (ok)
            {
                v[k] = i;
                PlaseazaRegina(k + 1);
            }
    }
}

int main()
{
    ifstream fin("damesah.in");
    fin >> n;
    PlaseazaRegina(1);
    fout << sol;
    return 0;
}