Cod sursa(job #3162480)

Utilizator biancalautaruBianca Lautaru biancalautaru Data 29 octombrie 2023 12:34:40
Problema Problema Damelor Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#define DIM 14
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,sol,x[DIM];
bool col[DIM],dp[DIM],ds[DIM];

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

void backtrack(int k) {
    for (int i=1;i<=n;i++)
        if (col[i]==0 && dp[i-k+n]==0 && ds[i+k]==0) {
            x[k]=i;
            if (k==n) {
                sol++;
                if (sol==1)
                    afisare();
                continue;
            }
            col[i]=1;
            dp[i-k+n]=1;
            ds[i+k]=1;
            backtrack(k+1);
            col[i]=0;
            dp[i-k+n]=0;
            ds[i+k]=0;
        }
}

int main() {
    fin>>n;
    backtrack(1);
    fout<<"\n"<<sol;
    return 0;
}