Descifrando WordWhiz
Un juego de adivinar palabras usa un diccionario de \(N\) palabras de cinco letras minúsculas distintas entre sí. Después de cada intento, el juego muestra una pista por posición:
X: la letra no está en la palabra secreta;!: la letra está en la palabra secreta, pero en otra posición;*: la letra está en la palabra secreta en esa misma posición.
Por ejemplo, con la secreta hotel, el intento blast da X!XX!, heart da *!XX! y hotel da
*****.
Se conocen el diccionario, la palabra secreta y solo las pistas de cada intento de una partida. Para cada intento, calcula cuántas palabras del diccionario pudieron haberse jugado (es decir, cuántas producen exactamente esa pista).
Entrada
La primera línea tiene un entero \(N\) \((1 \le N \le 1000)\).
Cada una de las siguientes \(N\) líneas tiene una palabra del diccionario; todas son distintas y cada una tiene cinco letras minúsculas distintas. La primera palabra es la secreta.
La siguiente línea tiene un entero \(G\) \((1 \le G \le 10)\), y siguen \(G\) líneas, cada una con una pista
de cinco caracteres entre X, ! y *.
Se garantiza que la partida es posible.
Salida
\(G\) líneas: la \(i\)-ésima con la cantidad de palabras que pudieron ser el \(i\)-ésimo intento.
Ejemplo 1
Entrada
6
hotel
weary
heart
blast
pilot
vague
3
X!XX!
*!XX!
*****
Salida
1
1
1
Ejemplo 2
Entrada
3
scale
table
maple
5
X!X**
X!X**
X!X**
X!X**
X!X**
Salida
2
2
2
2
2
Ejemplo 3
Entrada
4
scale
table
maple
smile
4
X!X**
*XX**
X!X**
*****
Salida
2
1
2
1
Ejemplo 4
Entrada
5
latin
mrica
think
solve
debug
1
*****
Salida
1
Regional Latinoamericana 2023 del ICPC, problema D («Deciphering WordWhiz»). Versión en español redactada para este juez; el enunciado oficial, en inglés, está aquí abajo.
Comentarios