Cod sursa(job #3167108)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 9 noiembrie 2023 23:40:49
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;

short v[15];
bool col[15], left_diag[30], right_diag[30];
int n, nrsol, k, i;

void bkt(){
    int j;
    if(i > n){
        if(++nrsol <= 1) {
            for (k = 1; k <= n; k++)
                printf("%hd ", v[k]);
            printf("\n");
        }
    }
    else for(j = 1; j <= n; j++)
            if(col[j] + left_diag[i - j + n] + right_diag[i + j - 1] == 0){
                col[j] = left_diag[i - j + n] = right_diag[i + j - 1]= true;
                v[i] = j;
                ++i;
                bkt();
                --i;
                v[i] = 0;
                col[j] = left_diag[i - j + n] = right_diag[i + j - 1] = false;
            }
}


int main() {
    //int ;
    freopen("damesah.in", "r", stdin);
    freopen("damesah.out", "w", stdout);
    scanf("%d", &n);
    i = 1;
    bkt();
    printf("%d\n", nrsol);

    return 0;
}