#bitflyer2018finalf. [bitflyer2018_final_f]配信パズル
[bitflyer2018_final_f]配信パズル
問題文
すぬけ君は、 日間にわたって、毎日次のようなパズルを解こうとしています。
- すぬけ君の持っている端末に、縦 行、横 列からなる格子状の盤面が毎日配信されてくる。それぞれのマスは白または黒で塗られている。ただし、 日目 () に配信されてくる盤面は、 日目に配信される盤面の上から 行目で左から 列目のマスの白黒が反転したものである。
- 配信されてきた盤面に対し、すぬけ君ははじめに最大 回、盤面の中の長方形領域を指定し、領域中の全てのマスの白黒を反転させる。
- その後、すぬけ君は つの行または列を選び、その中の全てのマスの白黒を反転させるという操作を好きな回数だけ行える。
- 盤面の全てのマスを同じ色にすることが目的である。
すぬけ君は賢いので、配信されてくる盤面の中には絶対に解けないものが存在することに勘付いています。そこで、すぬけ君の代わりに、それぞれの日の盤面について、盤面の全てのマスを同じ色にする方法が存在するかどうかを判定してください。
ただし、 日目に配信される盤面は、上から 行目 () で左から 列目 () のマスは、 が .
のとき白に、 #
のとき黒に塗られています。
制約
- は
.
または#
入力
入力は以下の形式で標準入力から与えられる。
: :
出力
行出力せよ。 行目 () には、 日目の盤面の全てのマスを同じ色にする方法が存在する場合 Yes
を、そうでない場合 No
を出力せよ。
入力例 1
3 4 4
...#
.###
.#.#
3 1
2 4
2 2
出力例 1
No
No
No
Yes
日目の盤面が、全てのマスを同じ色にする方法が存在する盤面です。
...#
..#.
##.#
この盤面からは、以下のようにして全てのマスを白にできます。
- 盤面の右下端の 行 列の長方形領域を反転させる。
- 上から 行目の全てのマスを反転させる。
- 左から 列目の全てのマスを反転させる。
入力例 2
4 4 5
####
####
....
####
2 2
3 2
2 3
3 3
出力例 2
Yes
Yes
Yes
No
Yes