Cod sursa(job #2786956)

Utilizator Edyci123Bicu Codrut Eduard Edyci123 Data 22 octombrie 2021 09:23:50
Problema Problema Damelor Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>
#define DIM 15

using namespace std;

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

int n, m, ok, x[DIM], col[DIM], d1[DIM], d2[DIM], sol;

int dI(int lin, int col)
{
    return n - lin + col;
}

int dII(int lin, int col)
{
    return lin + col - 1;
}

void bkt(int k)
{
    if(k == n + 1 && !ok)
    {
        ok = 1;
        for(int i = 1; i <= n; i++)
            g << x[i] << " ";
        g << "\n";
    }

    for(int i = 1; i <= n; i++)
        if(!col[i] && !d1[dI(k, i)] && !d2[dII(k, i)])
        {
            col[i] = d1[dI(k, i)] = d2[dII(k, i)] = 1;
            x[k] = i;

            if(k == n)
                sol++;
            bkt(k + 1);

            col[i] = d1[dI(k, i)] = d2[dII(k, i)] = 0;
        }
}

int main()
{
    f >> n;

    bkt(1);
    g << sol << "\n";
    return 0;
}