Prefijos

Considera una colección de palabras. A veces, es posible identificar cada palabra de forma unívoca a partir de sus prefijos. Por ejemplo, si la colección es {𝚊𝚖𝚘𝚛,𝚌𝚊𝚜𝚊,𝚌𝚊𝚜𝚘,𝚌𝚘𝚙𝚊,𝚢𝚊}\{ \texttt{amor}, \texttt{casa}, \texttt{caso}, \texttt{copa}, \texttt{ya} \}, una palabra que empiece por a tiene que ser amor. Del mismo modo, si sabemos que una palabra empieza por y, ésta tiene que ser ya. Sin embargo, para identificar la palabra copa necesitamos el prefijo co, y para identificar tanto casa como caso necesitamos escribir las palabras completas.

Tu programa debe escribir las palabras ordenadas crecientemente según la longitud del prefijo más corto que las identifica. En caso de empate, hay que escribir las palabras en orden lexicográfico.

Entrada

La entrada consiste en varios casos. Cada caso comienza con su número de palabras n2n \ge 2. Siguen nn palabras, cada una con entre 1 y 20 letras minúsculas. Todas las palabras de una colección serán identificables a partir de alguno de sus prefijos (eventualmente, la palabra completa). Es decir, ninguna palabra dada será prefijo de otra del mismo caso.

Salida

Para cada caso, vuestro programa debe escribir los prefijos (junto con las palabras a las que identifican) en orden creciente por longitud y, en caso de empate, en orden lexicográfico. Separar la salida entre casos con una línea con 10 guiones.

Puntuación

Información del problema

Autoría: Salvador Roura

Generación: 2026-01-25T11:56:32.163Z

© Jutge.org, 2006–2026.
https://jutge.org