AT_abc287_d [ABC287D] Match or Not
Description
[problemUrl]: https://atcoder.jp/contests/abc287/tasks/abc287_d
英小文字と `?` からなる文字列 $ S,T $ が与えられます。ここで、$ |S|\ \gt\ |T| $ が成り立ちます(文字列 $ X $ に対し、 $ |X| $ で $ X $ の長さを表します)。
また、$ |X|=|Y| $ を満たす文字列 $ X,Y $ は、次の条件を満たすとき及びそのときに限り**マッチする**といいます。
- $ X,Y $ に含まれる `?` をそれぞれ独立に好きな英小文字に置き換えることで $ X $ と $ Y $ を一致させることができる
$ x=0,1,\ldots,|T| $ に対して次の問題を解いてください。
- $ S $ の先頭の $ x $ 文字と末尾の $ |T|-x $ 文字を順番を保ったまま連結することで得られる長さ $ |T| $ の文字列を $ S' $ とする。$ S' $ と $ T $ がマッチするならば `Yes` と、そうでなければ `No` と出力せよ。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ S $ $ T $
Output Format
$ |T|+1 $ 行出力せよ。
$ i $ 行目には $ x=i-1 $ に対する出力をせよ。
Explanation/Hint
### 制約
- $ S,T $ は英小文字と `?` からなる文字列
- $ 1\ \leq\ |T|\ \lt\ |S|\ \leq\ 3\ \times\ 10^5 $
### Sample Explanation 1
$ x=0 $ の場合、$ S' $ は `?c` となります。ここで、$ S' $ の $ 1 $ 文字目の `?` を `b` に、$ T $ の $ 2 $ 文字目の `?` を `c` に置き換えることで $ S' $ と $ T $ を一致させることができるため、$ S' $ と $ T $ はマッチします。このため、$ 1 $ 行目の出力は `Yes` です。 $ x=1,2 $ の場合は $ S' $ はそれぞれ `ac`、`a?` であり、$ T $ とマッチしません。このため、$ 2,3 $ 行目の出力は `No` です。