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)