Cod sursa(job #3318250)

Utilizator Warrior.exeZgorcea Mihai-Alexandru Warrior.exe Data 27 octombrie 2025 17:21:48
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int nr,raspuns=0;
bool pus[20],lock=false;
int val[20];

int mod(int val){
    if(val<0){
        return val*-1;
    }
    return val;
}

void afis(){
    raspuns++;
    if(lock==false){
        lock = true;
        for(int i=1;i<=nr;i++){
            fout<<val[i]<<" ";
        }
        fout<<'\n';
    }
}

bool valid(int k){
    for(int i=1;i<k;i++){
        if(mod(i-k) == mod(val[i]-val[k])){
            return false;
        }
    }
    return true;
}

void backt(int k=1){
    if(k==nr+1){
        afis();
    }
    else{
        for(int i=1;i<=nr;i++){
            if(pus[i] == false){
                pus[i] = true;
                val[k] = i;
                if(valid(k)){
                    backt(k+1);
                }
                val[k] = 0;
                pus[i] = false;
            }
        }
    }
}

int main(){
    fin>>nr;
    backt(1);
    fout<<raspuns;
    return 0;
}