ACM 2015 - Round #3Ended |
Es un hecho bien conocido que si uno reordena las letras de una palabra, dejando en su lugar la primera y última letra, aún se puede leer la palabra. Por ejemplo la frase “ tihs snetncee mkaes prfecet sesne ”, sigue teniendo significado para la mayoría de nosotros. Si uno borra los espacios de una oración tampoco pierde su significado. Por ejemplo la oración “ thissentencemakesperfectsense ” se puede entender perfectamente. Sin embargo, cuando se combinan las dos cosas puede ser un poco complicado entender la frase. Es prácticamente imposible de descifrar lo que significa “tihssnetnceemkaesprfecetsesne”.
El nuevo desafio de Fito consiste en, dada una cadena que se obtuvo de aplicar estas operaciones y un diccionario con las palabras v á lidas, decir si se puede determinar de forma única la frase original.
La primera línea tendrá un entero con la cantidad de casos de prueba (a lo sumo $100$). Para cada caso habrá una línea con una cadena $s$ de a lo sumo $1000$ caracteres, luego una línea con un entero $N$ $(1 \le N \le 10000)$ que indica la cantidad de palabras del diccionario, y finalmente $N$ líneas cada una con una palabra del diccionario. Las palabras tendrán a lo sumo 100 caracteres y serán todas diferentes.
Para cada caso se debe imprimir una línea con la frase original, si esta se puede obtener de una única forma. Si existe más de una frase válida se debe imprimir “ ambiguous ” y si no existe ninguna se debe imprimir “ impossible ”.