行 列のマスからなるビンゴカードを、ビンゴせずにできるだけ多くの穴をあけてください。
厳密に述べます。
行 列のマスからなるビンゴカードについて、各マスは「穴があいている状態」もしくは「穴があいていない状態」のどちらかのみにすることができます。
ビンゴとは、次のいずれかの条件を満たす状態を指します。
ある行 () において、すべての列 () のマスに穴があいている状態
ある列 () において、すべての行 () のマスに穴があいている状態
左上から右下に向かう対角線上のすべてのマスに穴があいている状態
右上から左下に向かう対角線上のすべてのマスに穴があいている状態
あなたの目標は、ビンゴを成立させずに、穴があいたマスの個数を最大化することです。
入力は以下の形式で標準入力から与えられる。
題意を満たすビンゴカードを長さ の文字列 個として出力せよ。 穴があいていないマスに対応する文字は .
(ドット) とし、穴があいているマスに対応する文字は #
とすること。
題意を満たすビンゴカードが複数存在する場合は、どれを出力しても正解となる。
5
.#### ####. ###.# #.### ##.##
この出力例は 個のマスに穴があいているビンゴカードを表しています。
このビンゴカードでは、縦・横・ななめのすべての方向について、 個連続して穴があいている箇所はありません。
また、穴をあけるマスの個数が 個以上のときは必ずビンゴしてしまうことが示せるため、これは問題文の条件を満たします。