Cod sursa(job #2786964)

Utilizator Edyci123Bicu Codrut Eduard Edyci123 Data 22 octombrie 2021 09:48:37
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 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[2 * DIM], d2[2 * 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)
{
    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)
            {
                if(!ok)
                {
                    ok = 1;
                    for(int i = 1; i <= n; i++)
                        g << x[i] << " ";
                    g << "\n";
                }
                sol++;
            }
            else
                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;
}