

			CUVINTE
		       ---------

	Se considera n cuvinte fiecare de n caractere. Cu un numar minim de schimbari intre cuvvinte
sa se ajunga la situatia in care cuvantul de pe locul intai este acelasi cu cel rezultat prin pre-
luarea primului caracter de la cele n cuvinte, cuvantul al doilea coincide cu cel rezultat din al
doilea caracter de la cele n cuvinte etc., ca in exemplu:


		C A A R						A B A C
		B U L A						B U L A
de la		A B A C			se obtine		A L B A
		A L B A						C A A R

	Solutia se va da prin perechile de linii ce se schimba. In exemplul dat solutia este (1,3)
(3,4).
	Datele de intrare se citesc dintr-un fisier "CAR.TXT", care cuprinde mai multe seturi de 
date separate prin cate o linie vida.

SOLUTIE:
--------

	Observam ca pe fiecare coloana numai ordinea literelor se va schimba, continutul ramanand
acelasi. La primul pas vom numara literele (A,B,..) din fiecare coloana si fiecare linie si vom
considera reusita incercarea de a plasa linia i in pozitia j doar daca linia i contine acelasi nu-
mar de litere ca si coloana j. In acest scop vom defini matricea posibil[i,j]=TRUE atunci cand
conditia de mai sus este verificata, si FALSE in caz contrar.
	Vom aplica metoda backtracking recursiva. Vom genera sirul perm astfel: perm[i]= nr. liniei
care va fi adusa pe pozitia i. Antetul procedurii de generare este cauta(c), unde c reprezinta pozi-
tia curenta in sirul perm generata la un anumit apel: cand c>n, daca solutia gasita este cea mai
buna de pana acum, ea va fi memorata memorata in sirul perm_ok.
	In scopul calcularii numarului de interschimbari si a generarii lor, vom cauta pozitia pe
care trebuie adusa o alta linie si vom face interschimbarea corespunzatoare. Vom repeta aceasta
operatie pana cand toate liniile ajung pe pozitia lor. Numarul interschimbarilor va fi n=nr. de
cicluri ale permutarii.