QOJ.ac

QOJ

実行時間制限: 1.0 s メモリ制限: 2048 MB 満点: 100

#16181. 破译 WordWhiz

統計

WordWhiz 是一款风靡的单词拼图游戏,挑战玩家在有限的尝试次数内猜出一个秘密单词。该游戏使用一个包含 $N$ 个单词的词典。词典中的每个单词都由五个互不相同的英文小写字母组成。

游戏开始时,玩家会看到一个由若干行组成的空网格。每一行允许进行一次猜测。玩家的任务是用词典中包含的单词填满各行,直到找到秘密单词,或者用完所有可用的行。

在玩家提交一次猜测后,游戏会通过给写有该猜测的单元格着色来提供反馈。反馈由三种颜色组成:

  • 灰色(“X”):该单元格中的字母不在秘密单词中。
  • 黄色(“!”):该单元格中的字母在秘密单词中,但位置不正确。
  • 绿色(“*”):该单元格中的字母在秘密单词中,且位置正确。

为了便于说明,我们假设秘密单词是 “hotel”,而玩家提交的猜测是 “blast”。在这种情况下,第一、第三和第四个单元格会变成灰色,因为 “b”、“a” 和 “s” 不在秘密单词 “hotel” 中。然而,第二和第五个单元格会变成黄色。这表明 “l” 和 “t” 是秘密单词的一部分,但位置不对:“l” 应该在第五个位置而不是第二个,而 “t” 应该在第三个位置而不是第五个。该反馈将表示为 “X!XX!”。

现在,如果玩家提交 “heart” 作为猜测,第三和第四个单元格仍会变成灰色,因为 “a” 和 “r” 不在 “hotel” 中。第二和第五个单元格会再次变成黄色,因为 “t” 再次出现在第五个位置(而不是第三个),而这一次 “e” 出现在第二个位置(而它应该在第四个位置)。然而,对于这次猜测,第一个单元格会变成绿色,表明 “h” 在猜测 “heart” 和秘密单词 “hotel” 中都是第一个字母。该反馈将表示为 “*!XX!”。

最后,如果玩家提交 “hotel” 作为猜测,所有单元格都会变成绿色,因为这就是秘密单词。该反馈将表示为 “*”。

上述反馈如下图所示。

不久前,你的公司在网站上添加了 WordWhiz 游戏,现在希望通过添加显示历史游戏记录的功能来增强该游戏。然而,系统只存储了每次猜测的反馈,而没有存储提交的单词。这意味着可能无法准确恢复每次游戏记录中提交的猜测。在投入更多精力之前,公司希望对记录的游戏过程进行分析。

给定一个由五个字母组成的单词词典、秘密单词(包含在词典中)以及某次游戏记录的反馈,你的任务是确定词典中有多少个单词可以作为每次猜测提交。

输入格式

第一行包含一个整数 $N$ ($1 \le N \le 1000$),表示词典中单词的数量。

接下来的 $N$ 行,每行包含一个字符串,表示词典中的一个单词。所有字符串均不相同,且每个字符串都由五个互不相同的英文小写字母组成。第一个字符串是该场游戏的秘密单词。

下一行包含一个整数 $G$ ($1 \le G \le 10$),表示该场游戏中的猜测次数。

接下来的 $G$ 行,每行包含一个长度为五的字符串,表示某次猜测的反馈。反馈字符串仅包含字符 “X”、“!” 和 “*”,分别代表灰色、黄色和绿色。

保证输入描述的是一个合法的游戏记录。

输出格式

输出 $G$ 行,其中第 $i$ 行包含一个整数,表示词典中可以作为第 $i$ 次猜测提交的单词数量。

样例

输入样例 1

6
hotel
weary
heart
blast
pilot
vague
3
X!XX!
*!XX!
*****

输出样例 1

1
1
1

说明 1

唯一的可能性是玩家按照题目描述中写的那样提交了猜测。

输入样例 2

3
scale
table
maple
5
X!X**
X!X**
X!X**
X!X**
X!X**

输出样例 2

2
2
2
2
2

说明 2

当提交 “table” 或 “maple” 作为猜测时,反馈均为 “X!X**”(因为秘密单词是 “scale”)。这意味着对于该场游戏记录,玩家在每次尝试中都可以提交这两个单词中的任意一个。

输入样例 3

4
scale
table
maple
smile
4
X!X**
*XX**
X!X**
*****

输出样例 3

2
1
2
1

输入样例 4

5
latin
mrica
think
solve
debug
1
*****

输出样例 4

1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.