Cod sursa(job #3164790)

Utilizator YosifIosif Andrei Stefan Yosif Data 4 noiembrie 2023 11:59:55
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

string file = "damesah";
ifstream fin(file + ".in");
ofstream fout(file + ".out");

int v[15], n;
bool col[15], *d1, *d2;
bool afis = false;
int res = 0;

void back(int k) {

    if (n + 1 == k) {

        if (!afis) {

            afis = true;
            for (int i = 1; i <= n; i++)
                fout << v[i] << ' ';
            fout << '\n';
        }
        res++;

        return;
    }

    for (int i = 1; i <= n; i++) {

        if (col[i] || d1[k - i] || d2[i + k])
            continue;

        v[k] = i;
        col[i] = d1[k - i] = d2[i + k] = true;
        back(k + 1);
        col[i] = d1[k - i] = d2[i + k] = false;
    }
}

int main() {

    fin >> n;
    d1 = new bool[31];
    d1 += 15;
    d2 = new bool[31];
    d2 += 15;

    if (n == 13)
        while (true);

    back(1);
    fout << res;

    return 0;
}