AtCoder Regular Contest 031

B - 埋め立て


Time limit時間制限 : 2sec / Stack limitスタック制限 : 256MB / Memory limitメモリ制限 : 256MB

問題文

とある所に島国がありました。島国にはいくつかの島があります。このたび、この島国で埋め立て計画が立案されたのですが、どこを埋め立てるか決まっていません。できることなら埋め立てによって島を繋いで、1 つの島にしてしまいたいのですが、たくさん埋め立てるわけにもいきません。10 マス × 10 マスのこの島国の地図が与えられるので、1 マスを埋め立てた時に 1 つの島にできるか判定してください。ただし、地図で陸地を表すマスが上下左右につながっている領域のことを島と呼びます。


入力

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

A1,1A1,2...A1,10
A2,1A2,2...A2,10
:
A10,1A10,2...A10,10
  • 島国の地図が 10 行にわたって与えられる。
  • 各行は 10 文字からなり、o は陸地を、x は海を表す。
  • 少なくとも 1 マスは陸地があることが保証される。
  • 少なくとも 1 マスは海があることが保証される。

出力

海を 1 マスだけ陸地にすることで全体を 1 つの島にできるなら YES 、できないなら NO を出力せよ。出力の末尾には改行をつけること。ただし、元から 1 つの島だった場合も YES を出力せよ。


入力例1

xxxxxxxxxx
xoooooooxx
xxoooooxxx
xxxoooxxxx
xxxxoxxxxx
xxxxxxxxxx
xxxxoxxxxx
xxxoooxxxx
xxoooooxxx
xxxxxxxxxx

出力例1

YES

赤く囲ったマスを埋め立てることで 1 つの島にできます。


入力例2

xxxxxxxxxx
xoooooooxx
xxoooooxxx
xxxoooxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxoooxxxx
xxoooooxxx
xxxxxxxxxx

出力例2

NO

入力例3

xxxxoxxxxx
xxxxoxxxxx
xxxxoxxxxx
xxxxoxxxxx
ooooxooooo
xxxxoxxxxx
xxxxoxxxxx
xxxxoxxxxx
xxxxoxxxxx
xxxxoxxxxx

出力例3

YES

Submit提出する