atcoder#ABC300B. [ABC300B] Same Map in the RPG World

[ABC300B] Same Map in the RPG World

配点 : 200200

問題文

高橋君は RPG を作っています。高橋君は 2 枚の RPG 世界のマップが一致しているかを判定するプログラムを書くことにしました。

HH マス横 WW マスの 2 つのグリッド A,BA, B があります。グリッドの各マスには #. のいずれかの文字が書かれています。 AABB の上から ii 行目、左から jj 列目に書かれている文字をそれぞれ Ai,j,Bi,jA_{i, j}, B_{i, j} と呼びます。

次の 22 種類の操作をそれぞれ 縦方向のシフト, 横方向のシフト と呼びます。

  • j=1,2,,Wj=1, 2, \dots, W について次の操作を同時に行う。- A1,j,A2,j,,AH1,j,AH,jA_{1,j}, A_{2,j}, \dots, A_{H-1, j}, A_{H,j}A2,j,A3,j,,AH,j,A1,jA_{2,j}, A_{3,j}, \dots, A_{H,j}, A_{1,j} に同時に置き換える。
  • A1,j,A2,j,,AH1,j,AH,jA_{1,j}, A_{2,j}, \dots, A_{H-1, j}, A_{H,j}A2,j,A3,j,,AH,j,A1,jA_{2,j}, A_{3,j}, \dots, A_{H,j}, A_{1,j} に同時に置き換える。
  • i=1,2,,Hi = 1, 2, \dots, H について次の操作を同時に行う。- Ai,1,Ai,2,,Ai,W1,Ai,WA_{i,1}, A_{i,2}, \dots, A_{i,W-1}, A_{i,W}Ai,2,Ai,3,,Ai,W,Ai,1A_{i, 2}, A_{i, 3}, \dots, A_{i,W}, A_{i,1} に同時に置き換える。
  • Ai,1,Ai,2,,Ai,W1,Ai,WA_{i,1}, A_{i,2}, \dots, A_{i,W-1}, A_{i,W}Ai,2,Ai,3,,Ai,W,Ai,1A_{i, 2}, A_{i, 3}, \dots, A_{i,W}, A_{i,1} に同時に置き換える。

次の条件を満たす非負整数の組 (s,t)(s, t) は存在しますか?存在する場合は Yes を、存在しない場合は No を出力してください。

  • 縦方向のシフトを ss 回行い、次に横方向のシフトを tt 回行った時、操作後の AABB と一致する。

ここで、AABB が一致するとは、1iH,1jW1 \leq i \leq H, 1 \leq j \leq W を満たす整数の組 (i,j)(i, j) すべてに対して Ai,j=Bi,jA_{i, j} = B_{i, j} が成り立つことを言います。

制約

  • 2H,W302 \leq H, W \leq 30
  • Ai,j,Bi,jA_{i,j},B_{i,j}# または .
  • H,WH, W は整数

入力

入力は以下の形式で標準入力から与えられる。

HH WW

A1,1A1,2A1,WA_{1,1}A_{1,2}\dots A_{1,W}

A2,1A2,2A2,WA_{2,1}A_{2,2}\dots A_{2,W}

\vdots

AH,1AH,2AH,WA_{H,1}A_{H,2}\dots A_{H,W}

B1,1B1,2B1,WB_{1,1}B_{1,2}\dots B_{1,W}

B2,1B2,2B2,WB_{2,1}B_{2,2}\dots B_{2,W}

\vdots

BH,1BH,2BH,WB_{H,1}B_{H,2}\dots B_{H,W}

出力

条件を満たす整数の組 (s,t)(s, t) が存在する場合は Yes を、存在しない場合は No を出力せよ。

4 3
..#
...
.#.
...
#..
...
.#.
...
Yes

(s,t)=(2,1)(s, t) = (2, 1) とすると AABB を一致させることができます。 (s,t)=(2,1)(s, t) = (2, 1) の時の操作の手順を説明します。はじめ、AA は次の通りです。

..#
...
.#.
...

まず、縦方向のシフトを行います。AA は次のようになります。

...
.#.
...
..#

次に、再び縦方向のシフトを行います。AA は次のようになります。

.#.
...
..#
...

最後に、横方向のシフトを行います。AA は次のようになり、これは BB と一致しています。

#..
...
.#.
...
3 2
##
##
#.
..
#.
#.
No

どのように (s,t)(s, t) を選んでも AABB を一致させることはできません。

4 5
#####
.#...
.##..
..##.
...##
#...#
#####
...#.
Yes
10 30
..........##########..........
..........####....###.....##..
.....##....##......##...#####.
....####...##..#####...##...##
...##..##..##......##..##....#
#.##....##....##...##..##.....
..##....##.##..#####...##...##
..###..###..............##.##.
.#..####..#..............###..
#..........##.................
................#..........##.
######....................####
....###.....##............####
.....##...#####......##....##.
.#####...##...##....####...##.
.....##..##....#...##..##..##.
##...##..##.....#.##....##....
.#####...##...##..##....##.##.
..........##.##...###..###....
...........###...#..####..#...
Yes