Problema 1
Anagramas
anagram.pas, anagram.c, anagram.cpp

Problema
Dado un conjunto de letras, escribe un programa que genere todas las palabras posibles. Ejemplo: De la palabra ‘abc’ el programa debe producir, explorando todas las posibles combinaciones de letras, las siguientes palabras: ‘abc’, ‘acb’, ‘bac’, ‘bca’, ‘cab’ y ‘cba’.
En la palabra obtenida de la entrada, algunas letras pueden aparecer más de una vez. Para una palabra dada, el programa no debe producir la misma palabra más de una vez y las palabras deben aparecer ordenadas alfabéticamente.

Entrada
La entrada está formada por diversas palabras. La primera línea contiene el número de palabras que siguen. Cada línea contiene una palabra. Una palabra está compuesta por letras de ‘a’ a ‘z’, minúsculas, y tiene de 1 a 10 letras.

Salida
Para cada palabra de la entrada, la salida debe contener todas las diferentes palabras que pueden ser generadas con las letras de la palabra. Las palabras generadas desde una palabra deben mostrarse en orden alfabético.

Ejemplo

entrada salida
2
abc
acba
abc
acb
bac
bca
cab
cba
aabc
aacb
abac
abca
acab
acba
baac
baca
bcaa
caab
caba
cbaa

 


Concurso: ICPC - 2 Concurso Interno de la Universidad Bonaterra. 17/Mayo/2002
Tomado de: UVa Online Judge - 195
Ayuda: entradas, salidas, sugerencias
Soluciones: anagram.pas, anagram.c, anagram.cpp


World of πer