Está en la página 1de 2

Ordenando palabras

En esta ocasión tenemos un rompecabezas, tenemos una lista de palabras que deben ser
ordenas de manera tal que la última letra de una palabra coincida con la primera letra de la
siguiente, por ejemplo, la palabra "maíz" puede ser seguida de la palabra "zapato". Tu tarea es
escribir un algoritmo que lea la lista de palabras y determine si es posible o no ordenarlas de
esta manera.

Entrada
Los datos de entrada están en un archivo de texto plano llamado input.in y consisten en una
cantidad T (0 <= T <= 500) de casos, este número será el único dato en la primera línea del
archivo. Cada caso de prueba va a empezar con un reglón que contiene el numero N de
palabras para el caso de prueba (1 <= N <= 10000), seguido de exactamente N líneas cada una
conteniendo una sola palabra, cada palabra contiene al menos 2 letras, siempre en minúsculas,
y puede aparecer múltiples veces en el listado.
Por simplicidad, las palabras no contienen números, comas, acentos, ni otros caracteres
especiales.

Salida
Los datos de salida se esperarán en un archivo de texto plano con el nombre output.out. El
algoritmo debe determinar si cada caso de prueba puede ordenarse, todas las palabras del caso
de prueba deben usarse 1 vez cada una, las palabras que aparezcan múltiples veces deberán ser
usadas esa cantidad de veces. El archivo de salida debe contener una cadena de texto que
indique si fue posible ordenar o no, una por línea, una correspondiente a cada caso de prueba,
en caso de que se pueda ordenar, la cadena será “Es posible ordenar”, de lo contrario el texto
será: “No es posible ordenar”.
Ejemplo:
3
2
maiz
zapato
4
moneda
teclado
olla
tarjeta
4
salamandra
lunes
arbol
lunes

Salida:
Es posible ordenar
No es posible ordenar
Es posible ordenar

Notas:
 Los datos solo se esperan mediante archivo, no hay ingreso de datos por parte de un usuario.
 Los archivos se esperan con los nombres especificados, en la misma ruta que el ejecutable o
script.
 Es posible que los sets de entrada y/o salida sean muy grandes, tenerlo en consideración.
 Validar casos extremos, y posibles errores, el algoritmo no debe de tronar en ejecución.

También podría gustarte