Nuevas Palabras

Time Limit:
3 Sec
Memory Limit:
512Mb
Enviados:
0
Resuelto:
0
Enviar IDE Estado

Descripción

Tu hermanita esta aprendiendo a hablar y te das cuenta de que existen algunas palabras que son muy difíciles para que ella las aprenda, al saber que tu hermanita sabe como pronunciar n palabras se te ocurre una idea: que tal si escojo algunas palabras de mi libro favorito que estén formadas por la concatenación de 2 de las palabras que mi hermanita sabe? así ella sabra como pronunciar la nueva palabra :), tu idea es genial pero tediosa porque tienes que analizar todas las palabras de tu libro favorito así que decidiste hacer un programa que te ayude a encontrar estas palabras, una vez que obtienes una palabra que tu hermanita puede pronunciar se la haces conocer inmediatamente y ella la aprende en ese instante pero debido a que ella es muy pequeña y tiene muy poca memoria solo puede anadir la nueva palabra que aprendió a partir de otras 2 palabras a la lista de palabras que ya sabe pronunciar si la longitud de la palabra es  ≤ 102

Entrada

Un número n, 0 < n ≤ 104 indicando la cantidad de palabras que tu hermanita sabe pronunciar, n lineas siguen cada una con una palabra p que tendrá como máximo 102 letras (solo se consideran letras minúsculas)

Sigue un número q, 0 < q ≤ 5 * 104 indicando la cantidad de palabras que están en tu libro, siguen q lineas, cada linea tendrá una palabra newWord que es la palabra que tienes que analizar y decidir si tu hermanita la puede pronunciar, 2 ≤ longitud(newWord) ≤ 102 (solo se consideran letras minúsculas)

Salida

Imprime por cada newWord la cadena SI si es que tu hermanita puede pronunciar la nueva palabra a partir de la concatenacion de otras 2 palabras o NO si es imposible que tu hermanita pueda pronunciar la nueva palabra.

Ejemplo Entrada

Copy icon
5
ma
pa
ge
la
tina
6
mapa
mama
gato
gelatina
latina
gelatina

Ejemplo Salida

Copy icon
SI
SI
NO
NO
SI
SI

Ayuda