Nombre Password [ Regístrate ]

Escritura cíclica (OIE 6 - 2002)

 

El antiguo pueblo de los Cíclicos utilizaba un peculiar sistema de escritura. Cada palabra se escribía grabando sus letras en el borde de una de las caras de un pequeño disco de piedra o arcilla. Los textos se guardaban en forma de pila de discos. Para leer un texto se iban tomando los discos uno a uno y cada palabra se leía haciendo girar el disco en sentido antihorario. Fíjate en que, con este sistema, una palabra puede leerse de varias maneras diferentes, pues en ningún lugar del disco se indicaba cuál era la primera letra de la palabra. Así por ejemplo, cierta palabra de 5 letras podía leerse de cualquiera de las siguientes maneras:

babab
ababb
babba
abbab
bbaba

Al transcribir las palabras de la escritura cíclica a nuestra escritura lineal los arqueólogos han establecido un sistema de equivalencia de alfabetos (de modo que cada signo de los cíclicos puede representarse por una letra de nuestro abecedario) y para evitar confusiones eligen siempre (de entre todas las lecturas posibles de una palabra) la que sería la primera utilizando nuestro orden alfabético. Así, la palabra del ejemplo anterior, los arqueólogos la escribirán siempre como "ababb". A esto se le llama "trascripción estándar".

Los Cíclicos creían que las palabras que se escribían con las mismas letras mantenían entre ellas una relación especial que permitía elaborar fórmulas mágicas y cánticos sagrados.


Objetivo

Para ayudar a los arqueólogos en el estudio de la cultura cíclica, escribe un programa que halle todas las distintas posibles palabras relacionadas con una dada (es decir, aquellas que se escriben con exactamente las mismas letras, en la misma cantidad).


Entrada

Los datos de entrada estarán en un archivo de texto (ASCII) con nombre "CICLI.DAT". La primera línea de este archivo contendrá el número n (0 <= n < 100) de palabras que hay que procesar. Las siguientes n líneas contendrán, cada una, la trascripción estándar de una palabra cíclica. Téngase en cuenta que ninguna palabra cíclica tenía más de 16 letras.


Salida

El resultado se grabará en un archivo de texto (ASCII) de nombre "CICLI.RES", con la siguiente estructura:

- Para cada una de las palabras cíclicas del archivo de entrada (y en el mismo orden), se escribirá la trascripción estándar de todas las posibles palabras distintas relacionadas con ella (incluida ella misma).
- Las palabras relacionadas de cada grupo se escribirán en orden alfabético, una por línea.
- Entre cada dos grupos de palabras se dejará una línea en blanco.
- No habrá ningún espacio en blanco en el archivo ni líneas en blanco al final del mismo.

Ejemplo de entrada

4
arb
abab
abac
ames

Ejemplo de salida

abr
arb

aabb
abab

aabc
aacb
abac

aems
aesm
ames
amse
asem
asme



© (2001-2008) ALGORITMIA.NET - Política de privacidad