CF730H Delete Them

题目描述

Polycarp 是一名编程初学者,他正在学习如何使用命令行。 Polycarp 遇到了如下问题。在一个目录下有 $n$ 个文件,他需要删除其中的部分文件。Polycarp 想要通过一次 delete 命令,并在参数中给出文件名模式来完成。所有需要删除的文件应当匹配该模式,而其他文件不能匹配该模式。 Polycarp 只知道问号 '?' 这一种特殊字符,它可以匹配任意单个字符。他并不知道星号 '*' 的用法。模式中的其他所有字符只能匹配自身。 形式化的说,只有当文件名和模式长度相等,并且每一位字符要么完全相等,要么模式中为 '?'(此时对应的文件名字符可以任意)时,模式才匹配该文件名。 例如,文件名模式 "a?ba?": - 可以匹配文件名 "aabaa"、"abba."、"a.ba9" 和 "a.ba."; - 不能匹配 "aaba"、"abaab"、"aabaaa" 和 "aabaa."。 请帮助 Polycarp 找到一个只匹配要删除文件、且不匹配其他文件的模式。如果无法找到这样的模式,请报告无法做到。

输入格式

输入的第一行包含两个整数 $n$ 和 $m$($1 \leq m \leq n \leq 100$)——目录下的文件总数和需要删除的文件数。 接下来的 $n$ 行,每行包含一个文件名。所有文件名均为非空字符串,仅由小写英文字母、数字和点号('.')组成,长度不超过 100。保证所有文件名各不相同。 输入的最后一行包含 $m$ 个不同的正整数 $a_1,a_2,\ldots,a_m$($1 \leq a_i \leq n$),按升序排列,表示需要删除的文件的编号。文件按输入顺序由 $1$ 到 $n$ 编号。

输出格式

如果存在所需的模式,第一行输出 "Yes"。第二行输出找到的模式。如果有多组解,输出任意一种。 如果不存在这样的模式,只需输出一行 "No"。

说明/提示

由 ChatGPT 5 翻译