Cod sursa(job #2127197)

Utilizator Nevermore10Macovei Cosmin Nevermore10 Data 10 februarie 2018 13:58:02
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <fstream>
#include <cmath>
using namespace std;

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

int n;
int col[14];
bool prima = true;
int contor = 0;

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

void afiseaza() {
    for(int i  = 1; i <= n; i++) {
        g << col[i] << " ";
    }
    g << "\n";
}

void back(int nivel) {

    for(int i = 1; i <= n; i++) {
        col [nivel] = i;
        if(valid(nivel)) {
            if(nivel == n) {
                if(prima == true) {
                    afiseaza();
                    prima = false;
                    contor++;
                }
                else {
                    contor++;
                }
            }
            else
                back(nivel + 1);

        }
        col [nivel] = 0;
    }
}


int main() {
    f >> n;
    
    back(1);
    g << contor;

}