QOJ.ac

QOJ

Limite de temps : 5.0 s Limite de mémoire : 512 MB Points totaux : 100

#16951. 脑筋急转弯

Statistiques

有一种被称为字母算式谜(cryptarithmetics)的智力游戏。由 Henry Dudeney 发表在 1924 年 7 月号《Strand Magazine》上的经典例子如下:

  S E N D
+ M O R E
= M O N E Y

此类谜题的解是将字母分配为 $0$ 到 $9$ 的十进制数字,且满足以下约束:

  • 每个字母必须代表不同的十进制数字。
  • 每个数字的首位不能为零。
  • 结果必须是一个正确的等式——前两个十进制数之和等于第三个数。

上述谜题的唯一解为 $O = 0$,$M = 1$,$Y = 2$,$E = 5$,$N = 6$,$D = 7$,$R = 8$ 且 $S = 9$,从而得到如下等式:$9567 + 1085 = 10652$。

一个“好”的谜题(如上述经典例子)具有唯一解。现给定谜题的前两个单词,你的任务是从给定的词典中找出所有可能的第三个单词,使得它们能与前两个单词组成一个具有唯一解的“好”谜题。

输入格式

输入的第一行和第二行各包含一个单词,即谜题中的两个加数。

输入的第三行包含一个整数 $n$,表示词典中的单词数量,随后是 $n$ 行,每行包含一个词典中的单词。词典中的单词按字典序排列。

输入中的所有单词均由 $2$ 到 $15$ 个大写字母组成。除第一个测试点外,所有测试点均使用相同的词典,即包含 $279\,496$ 个单词的《柯林斯拼字游戏词典(2019版)》(Collins Dictionary Scrabble Words (2019))。前两个单词也来自该词典。请注意,你可以在随题目下发的样例文件包中找到包含完整词典的第二个测试点。

输出格式

第一行输出一个整数 $m$,表示词典中能与给定的前两个单词组成“好”谜题的单词数量。接下来的 $m$ 行按词典中的顺序输出这些单词。

样例

输入样例 1

SEND
MORE
3
FUN
HONEY
MONEY

输出样例 1

1
MONEY

输入样例 2

DUB
UPSPEAK
279496
... not shown ...

输出样例 2

2
UPMAKER
UPTAKEN

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.