Cod sursa(job #2006278)

Utilizator SCatalinStanciu Catalin SCatalin Data 29 iulie 2017 12:14:19
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int n;

int v[15],sol=0;
bool col[20],dgp[30],dgs[30];
bool flag = 0;

void afisare()
{
        for (int i = 1; i<=n; i++)
            out << v[i] << " ";
        out << "\n";
        flag = 1;
}

void Back(int k)
{
    for (int i = 1; i<=n; i++)
    {
        if (col[i] == 0 && dgp[n+i-k] == 0 && dgs[i+k-1] == 0)
        {
            v[k] = i;
            col[i] = dgp[n+i-k] = dgs[i+k-1] = 1;
            if (k == n)
            {
                if (!flag)
                afisare();
                sol++;
            }
            else
                Back(k+1);
            col[i] = dgp[n+i-k] = dgs[i+k-1] = 0;
        }
    }
}

int main()
{
    in >> n;
    Back(1);
    out << sol;
}