Cod sursa(job #2670410)

Utilizator alexia208160Popescu Alexia Maria alexia208160 Data 9 noiembrie 2020 20:46:16
Problema Problema Damelor Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <cmath>
#include <stdlib.h>

using namespace std;

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

int n, x[15], ct = 0;
bool c[15], diag[15], diag2[15];

void Complete(int k)
{
    for(int i = 1; i <= k; i++)
        fout << x[i] <<' ';
    fout<<'\n';
}

void Back(int k)
{
    for(int i = 1; i <= n; i++)
    {
        x[k] = i;
        if(c[x[k]] == 0 && diag[x[k] + k] == 0 && diag2[x[k] - k + n] == 0)
        {
            c[x[k]] = 1;
            diag[x[k] + k] = 1;
            diag2[x[k] - k + n] = 1;
            if(k == n)
            {
                if(ct == 0)
                    Complete(k);
                ct++;
            }
            else
                Back(k + 1);
            c[x[k]] = 0;
            diag[x[k] + k] = 0;
            diag2[x[k] - k + n] = 0;
        }
    }
}

int main()
{
    fin >> n;
    Back(1);
    fout << ct;
    return 0;
}