AT_chokudai003_a ○×ブロック

Description

[problemUrl]: https://atcoder.jp/contests/chokudai003/tasks/chokudai003_a $ N $ × $ N $ の正方形のブロックが与えられます。 ブロックは、 `o`ブロック、 `x`ブロック、 `.`ブロックの $ 3 $ つが与えられています。 しばらくすると`.`ブロックが全て消滅し、上にあるブロックが落ちてくることを知っています。 あなたは、ブロックが消滅する前に、`.` ブロックを、以下の $ 2 $ 種類のブロックのどちらかに変換することが可能です。 - `+`ブロック:消滅しない普通のブロック - `-`ブロック:消滅しないことに加え、自由落下もしないブロック あなたは、書き換えた後に、`.`ブロック消滅後の、上下左右方向に連結する`o`ブロックの最大数と、同様に連結する`x`ブロックの最大数の和を できるだけ大きくしたいです。 ブロックを変更する前の状態が与えられるので、ブロックを変更した後の状態を出力してください。

Input Format

> $ S_1 $ $ S_2 $ : $ S_N $

Output Format

変更後のブロックの配置を、入力のフォーマットと同様の形で出力せよ。 ただし、`+`ブロックは`+`、`-`ブロックは`-`で表現するものとする。 連結数の和がそのケースの得点となり、 $ 10 $ 個の入力の点数の和が、あなたの提出の得点となる。

Explanation/Hint

### 制約 - $ N $ = $ 50 $ - $ S_i $ は $ N $ 文字の文字列であり、 $ j $ 番目の文字 $ S_{i,j} $ は、`o`,`x`,`.`の $ 3 $ 種類のどれかである。 - 入力は、各文字に対し、$ 50% $ の確率で `.`、残りの $ 25% $ の確率で`o`か`x`になるようにランダムで生成される。 ### Sample Explanation 1 この入力は、説明のため、実際には存在しない小さい入力を使用しております。 全ての `.`ブロックが消滅したとき、以下のような状態になります。 図は、`o`ブロックを○、`x`ブロックを×、`+`ブロックを★、`-`ブロックを■で表現したものになります。 !\[例\](https://atcoder.jp/img/chokudai003/board.png)