Cod sursa(job #2762271)

Utilizator F.MatyiFischer Matyas Zsigmond F.Matyi Data 6 iulie 2021 11:43:22
Problema Problema Damelor Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int dame[14], db;
bool col[14], fatlo[14], matlo[14];

void backt(int n, int k)
{
    if(k==n){
        if(db<1){
            for(int i=0; i<n; i++){
                out<<dame[i]+1<<" ";
            }
            out<<endl;
        }
        db++;
    } else{
         for(int i=0; i<n; i++){
            if (!col[i] && !fatlo[i-k+n-1] && !matlo[k+i]){
                dame[k]=i;
                col[i]=fatlo[i-k+n-1]=matlo[k+i]=true;
                backt(n,k+1);
                col[i]=fatlo[i-k+n-1]=matlo[k+i]=false;
            }
        }
    }
}

int main()
{
    int n;
    in>>n;
    backt(n,0);
    out<<db;
    return 0;
}