#P13986. [PO Final 2023] 降重 / Synonyms

[PO Final 2023] 降重 / Synonyms

题目背景

1s, 1G, synonymer

题目描述

有时把文字从网络百科复制到文章里,会被查重程序判定为抄袭。为避免这种情况,需要先用自己的话改写文本,使其不被程序标记。方法很多,其中一种是先把文本翻译成另一种语言,再翻译回来。如果运气不好,即便这样,文本仍可能与原文过于相似。

你可以通过确保:若存在其他可能性,则一个词永远不会被翻译回同一个词,来规避这个问题。形式化地,设有一个包含 NN 个单词对 (a,b)(a, b) 的词典,其中 aa 是瑞典语的单词,bb 是另一种语言的单词。若存在某个单词 zz,使得词典中同时存在 (x,z)(x, z)(y,z)(y, z) 这两对,则某个单词 xx 可以被改写为单词 yy

给定一段文本,请通过「先翻译到另一种语言再翻译回来」的方式,尽可能多地将其中的单词替换为同义词。

输入格式

第一行给出整数 NN1N50001 \le N \le 5000),表示词典中的单词对数量。

接下来的 NN 行中,每行包含一对单词,先给出瑞典语单词,再给出另一种语言中的单词。同一个词不会同时出现在两种语言中,且完全相同的单词对不会重复出现。

随后给出一个整数 MM1M10001 \le M \le 1000),表示文本中的单词数。下一行包含 MM 个单词,即需要你改写的文本。保证这些单词都至少作为瑞典语单词在词典中出现过一次。

所有单词的长度在 112020 之间,且只包含字母表 az\texttt{a}\sim \texttt{z} 的字母。不保证这些单词一定是真实存在的自然语言单词。

输出格式

在一行中输出 MM 个单词,即按题述过程将尽可能多的单词替换为同义词后的文本。如果某个词有多个可选同义词,你可以任选其一,但不得与原词相同。

4
skum foam
skum shady
fradga foam
typ type
2
skum typ
fradga typ
3
skum foam
skum shady
fradga foam
2
skum fradga
fradga skum

提示

样例 11 解释

单词「skum」有 2 个译法,分别是「foam」和「shady」 。这些词再翻译回瑞典语时,可以得到两个不同的词:「skum」和「fradga」。为了避免把该词翻译回 「skum」,你必须选择「fradga」。

然而,对于第二个词,只有 1 个可用的翻译,因此只能翻回原词。

子任务

本题采用捆绑测试。

子任务编号 分值 限制
11 5656 另一种语言中的每个词都至少有 2 个瑞典语翻译。
22 4444 无其他限制。