#AT2456. D - Match or Not

D - Match or Not

D - 匹配还是不匹配

得分 : $ 400 $ 分

问题描述

给定由小写英文字母和?组成的字符串 $ S $ 和 $ T $。其中,保持 $ |S|> |T| $ (对于字符串 $ X $,$ | X | $ 表示 $ X $ 的长度)。

当且仅当:一个字符串 $ X $ 和 $ Y $,满足 $ |X|= |Y| $ 时,称为 匹配 如果并且仅当:
  • 使用任意字母独立地 取代 $ X $ 和 $ Y $ 中的每个 $ X $ 和 $ Y $ 中的 ?,可以使 得 $ X $ 和 $ Y $ 相等。

对于 $ x = 0,1,\ldots,| T | $ 解决问题的以下问题:

  • 令 $ S' $ 是通过连接 $ S $ 前 $ x $ 个字符和后半部分 $ S $ 的最后 $(| T |-x)$ 个字符而获得的长度为 $ | T | $ 的字符串。如果 $ S' $ 和 $ T $ 匹配,则打印Yes,否则打印 No

约束

  • $ S $ 和 $ T $ 是由小写英文字母和?组成的字符串。
  • $ 1 \leq |T| \lt |S| \leq 3 \times 10^5 $

输入

从标准输入以以下格式给出:

S S

T T

输出

打印 $(| T | +1)$ 行。
第 $ i $ 行应包含 $ x=i-1 $ 的答案。


a?c
b?
Yes
No
No

当 $ x = 0 $ 时, $ S' $ 等于 ?c 。我们可以将 $ S' $ 的第一个字符,? ,替换为 b ,将 $ T $ 的第二个字符,? ,替换为 c ,使得 $ S' $ 等于 $ T $,所以 $ S' $ 和 $ T $ 匹配。因此,应在第一行打印Yes
当 $ x=1 $ 和 $ 2 $ 时, $ S' $ 分别是 aca?,而这两个字符串都无法与 $ T $ 匹配。因此,第二行和第三行应分别打印No


atcoder
?????
Yes
Yes
Yes
Yes
Yes
Yes

beginner
contest
No
No
No
No
No
No
No
No