Cod sursa(job #2531370)

Utilizator ililogIlinca ililog Data 26 ianuarie 2020 10:49:08
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
using namespace std;
#include<bits/stdc++.h>

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

int n, x[14], nrsol;

void tipar() {
    for (int i = 1; i<=n; i++) {
        fout << x[i] << " ";
    }
    fout << endl;
}

bool cont(int x[], int k) {
    for (int i = 1; i<k; i++) {
        if (x[i] == x[k] || (abs(x[k]-x[i]) == abs(k-i))) {
            return 0;
        }
    }

    return 1;
}

void bkt(int pos) {
    if (pos > n) {
        nrsol++;
        if (nrsol == 1) {
            tipar();
        }
    } else {
        for (int i = 1; i<=n; i++) {
            x[pos] = i;
            if (cont(x,pos)) {
                bkt(pos+1);
            }
        }
    }
}

int main() {

    fin >> n;
    bkt(1);

    fout << nrsol;

    fin.close();
    fout.close();

    return 0;
}