AT_abc307_c [ABC307C] Ideal Sheet
Description
[problemUrl]: https://atcoder.jp/contests/abc307/tasks/abc307_c
高橋君は黒いマスと透明なマスからなるシート $ A,B $ を $ 1 $ 枚ずつと、透明なマスのみからなる無限に広がるシート $ C $ を持っています。
また、高橋君には黒いマスと透明なマスからなる、理想とするシート $ X $ が存在します。
シート $ A,B,X $ の大きさはそれぞれ縦 $ H_A $ マス $ \times $ 横 $ W_A $ マス、縦 $ H_B $ マス $ \times $ 横 $ W_B $ マス、縦 $ H_X $ マス $ \times $ 横 $ W_X $ マスです。
シート $ A $ の各マスは `.` と `#` からなる長さ $ W_A $ の文字列 $ H_A $ 個 $ A_1,A_2,\ldots,A_{H_A} $ によって表され、
$ A_i $ $ (1\leq\ i\leq\ H_A) $ の $ j $ 文字目 $ (1\leq\ j\leq\ W_A) $ が、 `.` のときシート $ A $ の上から $ i $ 行目かつ左から $ j $ 列目のマスは透明なマスであり、 `#` のとき黒いマスです。
シート $ B,X $ の各マスも、同様に長さ $ W_B $ の文字列 $ H_B $ 個 $ B_1,B_2,\ldots,B_{H_B} $ および長さ $ W_X $ の文字列 $ H_X $ 個 $ X_1,X_2,\ldots,X_{H_X} $ によって表されます。
高橋君の目標は、次の手順で、シート $ A,B,C $ から、$ A,B $ に存在する **すべての黒いマスを使って** シート $ X $ を作り出すことです。
1. シート $ A,B $ をマス目に沿ってシート $ C $ に貼り付ける。この時、シート $ A,B $ はそれぞれ好きな場所に平行移動させて貼って良いが、シートを切り分けたり、回転させたりしてはいけない。
2. シート $ C $ からマス目に沿って $ H_X\times\ W_X $ マスの領域を切り出す。ここで、切り出されたシートの各マスは、シート $ A $ または $ B $ の黒いマスが貼り付けられていれば黒いマスに、そうでなければ透明なマスとなる。
このとき、貼り付ける位置と切り出す領域をうまくとることで高橋君は目標を達成できるか、すなわち次の条件をともにみたすことにできるか判定してください。
- 切り出されたシートはシート $ A,B $ の **黒いマスをすべて** 含む。切り出されたシートの上でシート $ A,B $ の黒いマスどうしが重なって存在していても構わない。
- 切り出されたシートは、回転させたり裏返したりすることなくシート $ X $ と一致する。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ H_A $ $ W_A $ $ A_1 $ $ A_2 $ $ \vdots $ $ A_{H_A} $ $ H_B $ $ W_B $ $ B_1 $ $ B_2 $ $ \vdots $ $ B_{H_B} $ $ H_X $ $ W_X $ $ X_1 $ $ X_2 $ $ \vdots $ $ X_{H_X} $
Output Format
高橋君が問題文中の目標を達成できるならば `Yes` を、できないならば `No` を出力せよ。
Explanation/Hint
### 制約
- $ 1\leq\ H_A,W_A,H_B,W_B,H_X,W_X\leq\ 10 $
- $ H_A,W_A,H_B,W_B,H_X,W_X $ は整数
- $ A_i $ は `.` と `#` のみからなる長さ $ W_A $ の文字列
- $ B_i $ は `.` と `#` のみからなる長さ $ W_B $ の文字列
- $ X_i $ は `.` と `#` のみからなる長さ $ W_X $ の文字列
- シート $ A,B,X $ はそれぞれ少なくとも $ 1 $ つ以上の黒いマスを含む。
### Sample Explanation 1
まず、シート $ A $ をシート $ C $ に貼り付けると下図のようになります。 > $ \vdots $ ....... .#.#... $ \cdots $.......$ \cdots $ ..#.... ....... $ \vdots $ さらに、シート $ B $ をシート $ A $ と左上を合わせて貼ってみると下図のようになります。 > $ \vdots $ ....... .#.#... $ \cdots $..#....$ \cdots $ ..#.... ....... $ \vdots $ ここで、上で具体的に図示されている範囲のうち、上から $ 1 $ 行目かつ左から $ 2 $ 列目のマスを左上として $ 5\times\ 3 $ マスを切り出すと下図のようになります。 ``` ... #.# .#. .#. ... ``` これはシート $ A,B $ のすべての黒いマスを含んでおり、また、シート $ X $ と一致しているため条件を満たしています。 よって、`Yes` を出力します。
### Sample Explanation 2
シート $ A $ や $ B $ を回転させて貼ってはいけないことに注意してください。
### Sample Explanation 3
どのように貼ったり切り出したりしても、シート $ B $ の黒いマスをすべて含むように切り出すことはできないため、$ 1 $ つめの条件をみたすことができません。 よって、`No` を出力します。