Cod sursa(job #3187536)

Utilizator vozian.anghelinaAnghelina Vozian vozian.anghelina Data 29 decembrie 2023 13:24:45
Problema Problema Damelor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
int A[20][20], D[20], n, V[20], rs;

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

void back(int k){

    for(int i=1; i<k-1; i++){
        if(A[i][D[k-1] + (k-1-i)] == 1 || A[i][D[k-1] - (k-1-i)] == 1){
            // cout << "se elimina pasul " << k-1 << endl;
            return;
        }
    }

    if(k == n+1){
        rs++;
        if(rs == 1){
            for(int i=1; i<=n; i++){
                fout << D[i] << ' ';
            }
            fout << endl;
        }
        return;
    }

    for(int i=1; i<=n; i++){
        if(!V[i]){
            V[i] = 1;
            D[k] = i;
            A[k][D[k]] = 1;
            back(k+1);
            V[i] = 0;
            A[k][D[k]] = 0;
        }
    }
}

int main(){
    fin >> n;
    back(1);
    fout << rs << endl;
}