グリッドにサイクルは存在するか?
高さが
h
、幅が w
のグリッドがあり、各マスに文字が入っています。同じ文字のマスのみを連続して移動できるとき(たとえば a
だけを辿るなど)、ある地点で以前に訪れたマスに再び到達できるかを考えます。ただし、先ほどいたマスにそのまま戻ることはできません。移動は水平方向または垂直方向に隣接するマスのみ許されます。要するに、グリッド上で同じ文字がつながって「サイクル」を形成しているかどうかを確かめたいという問題です。
入力
最初の行には、
h
と w
(1 ≤ h, w ≤ 200)の2つの整数が与えられます。続く
h
行には、それぞれ w
個の小文字のラテン文字が並んでいます。 出力
もし同じ文字によるサイクルがグリッド内に存在するならば
Yes
を、存在しないならば No
を出力してください。 例
Input | Output |
4 4
aaaa
abba
abbc
aaaa | Yes |
4 4
aaaa
abba
abdc
aaaa | No |
4 4
aaaa
abba
abda
aaaa | Yes |
4 4
ccca
cdcc
ccec
fccc | Yes |
3 3
abb
bcb
bba | No |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB