Cod sursa(job #3332718)

Utilizator Diaconescu99Mihai Diaconescu Diaconescu99 Data 8 ianuarie 2026 19:03:23
Problema Problema Damelor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <cmath>
using namespace std;

int n, x[20];
long long total = 0;
bool afisat = false;

bool valid(int k)
{
    for (int i = 1; i < k; i++)
        if (x[k] == x[i] || abs(k - i) == abs(x[k] - x[i]))
            return false;
    return true;
}

void afisprsol()
{
    for (int i = 1; i <= n; i++)
        cout << x[i] << " ";
    cout << "\n";
    afisat = true;
}

void backt(int k)
{
    for (int v = 1; v <= n; v++)
    {
        x[k] = v;
        if (valid(k))
        {
            if (k == n)
            {
                total++;
                if (!afisat)
                    afisprsol();
            }
            else
                backt(k + 1);
        }
    }
}

int main()
{
    cin >> n;
    backt(1);
    cout << total << "\n";
    return 0;
}