#include "stdio.h" #include "conio.h" #include "iostream.h" bool PotContinua(int nr_linii, int nr_coloane, int x[], int k) { int linie=k/nr_coloane; int coloana=k%nr_coloane; //daca sunt pe prima linie si pe prima coloana //daca sunt pe prima linie //daca sunt pe prima linie si pe ultima coloana //daca sunt pe undeva prin mijlocul matricei if(linie!=1 && coloana !=1 && linie !=nr_linii && coloana!=nr_coloane) { if(x[k-1]==x[k] || x[k]==x[k+1] || x[k]==x[k-nr_coloane] || x[k]==x[k+nr_coloane]) return false; } //daca sunt pe ultima linie si pe prima coloana //daca sunt pe ultima coloana //daca sunt pe ultima linie si pe ultima coloana } void backtracking(int nr_linii, int nr_coloane, int x[]) { int nr_elemente_vector=nr_linii*nr_coloane; int cont; int nrsol=0; int k=0; x[k]=0; while(k>=0) { cont=0; while(cont==0 && x[k]<=4) { x[k]++; if(PotContinua(nr_linii,nr_coloane,x,k)) cont=1; } if(cont==0) k--; else if(k==n-1) { nrsol++; cout<<"\nSolutia numarul "<