/* Problema celor n dame. Fiind data o tabla de sah nxn, se cer toate solutiile de aranjare a n dame, a.i. sa nu se atace reciproc (sa nu se afle pe aceeasi linie, coloana sau diagonala) - deoarece pe fiecare linie se afla o singura dama, solutia o reprezentam sub forma unui vector cu n componente - fiecare nivel ia valori intre 1 si n - st[i]=k semnifica faptul ca pe linia i dama ocupa pozitia k - 2 dame se afla pe aceeasi linie sau coloana daca st[i]=st[k] - 2 dame se afla pe aceiasi diagonala, daca este indeplinita conditia |st[i]-st[j]|=|i-j| (diferenta in modul dintre linii si coloane este aceeasi) */ #include #include #include int st[10],n,k; void Init() { st[k]=0; } int Am_Succesor() { if(st[k]0) { do { } while ((As=Am_Succesor()) && !Valid()); if (As) if (Solutie()) Tipar(); else { k++; Init(); } else k--; } } void main() { clrscr(); printf("n="); scanf("%d",&n); back(); getch(); }