#1071. Wordle

Wordle

题目背景

最近小 θ \theta 迷上了 wordle 这款游戏。然而由于他太菜,总是不能猜出正确的单词,这使他相当恼火。

以下是游戏规则:

image

θ \theta 听说小 γ \gamma 拥有 JavaScript 之力,可以轻松进行游戏的开挂。然而作为 C++ 忠实粉丝的小 θ \theta 认为 JavaScript 太 low,于是他想要使用 C++ 制作一款 Wordle 的开挂工具。

然而,作为 C++ 初学者的小 θ \theta 还不会编写如此复杂的代码,于是他找到了精通 oi 的你,希望你可以帮助他完成程序。

题目描述

θ \theta 会输入词库(即所有可能为答案的单词)和他所进行的猜测中每个字母的颜色。你需要根据输入数据,推测出可能的答案。

输入格式

第一行一个整数 nn,表示词库中单词的数量。

接下来的 nn 行中,第 ii 行有一个长度为 5 的单词 DiD_i,表示可能为答案的单词。

接下来一行一个整数 mm,表示猜测的次数。

接下来的 mm 行中,第 ii 行有一个长度为 5 的单词 SiS_i,表示每次猜测的单词;以及一个长度为 5 的字符串 TiT_i,表示每个字母的颜色,以空格分隔。

对于 TiT_i 中的第 jj 个字母 cjc_j

  • cjc_j#,表示 SiS_i 的第 jj 个字母出现在答案中,并且和答案中的这个字母出现的位置相同。
  • cjc_j@,表示 SiS_i 的第 jj 个字母出现在答案中,但是和答案中的这个字母出现的位置不同。
  • cjc_j.,表示 SiS_i 的第 jj 个字母没有出现在答案中。

例如,假的答案为 ratioSiS_iinter,那么 TiT_i@.#.@,因为 SiS_i 的第一个字母 i 和第五个字母 r 出现在答案中但是位置不同,第三个字母 t 出现在答案中且位置相同,其余字母没有出现在答案中。

输出格式

那么输出一个长度为 5 的字符串,表示可能的答案。如果有多个可能的答案,你需要输出字典序最小的那个

输入输出样例

3
flask
ratio
super
2
inter @.#.@
while ..@..
ratio

说明/提示

对于 100% 100\% 的数据,保证:

  1. 所有 DiD_iSiS_i没有重复的字母
  2. 所有 DiD_iSiS_i 中的字母均为小写,所有 TiT_i 仅包含 #, @. 三种字符。
  3. 输入的词库按照字典序从小到大排列。
  4. 1n1051 \le n \le 10^51m51 \le m \le 5