A - ○×ブロック Editorial /

Time Limit: 10 sec / Memory Limit: 1024 MB

問題文

N × N の正方形のブロックが与えられます。 ブロックは、 oブロック、 xブロック、 .ブロックの 3 つが与えられています。

しばらくすると.ブロックが全て消滅し、上にあるブロックが落ちてくることを知っています。

あなたは、ブロックが消滅する前に、. ブロックを、以下の 2 種類のブロックのどちらかに変換することが可能です。

  • +ブロック:消滅しない普通のブロック
  • -ブロック:消滅しないことに加え、自由落下もしないブロック

あなたは、書き換えた後に、.ブロック消滅後の、上下左右方向に連結するoブロックの最大数と、同様に連結するxブロックの最大数の和を できるだけ大きくしたいです。

ブロックを変更する前の状態が与えられるので、ブロックを変更した後の状態を出力してください。

制約

  • N = 50
  • S_iN 文字の文字列であり、 j 番目の文字 S_{i,j} は、o,x,.の 3 種類のどれかである。
  • 入力は、各文字に対し、50% の確率で .、残りの 25% の確率でoxになるようにランダムで生成される。

入力

S_1
S_2
:
S_N

出力

変更後のブロックの配置を、入力のフォーマットと同様の形で出力せよ。 ただし、+ブロックは+-ブロックは-で表現するものとする。

連結数の和がそのケースの得点となり、 10 個の入力の点数の和が、あなたの提出の得点となる。


入力例 1

o.xx..ox..
..o.xx.o.x
.xxoo...o.
o..x.ox.x.
..o.o..ox.
..x..oo..x
.o.x.xxo..
x..xo.xxoo
.o..oox...
x.o.x.ox.x

出力例 1

o.xx..ox..
..o.xx.o.x
-xxoo...o.
o..x.ox.x.
..o.o+.ox.
..x..oo..x
.o.x.xxo..
x.+xo-xxoo
.o..oox+++
x.o.x.ox.x

この入力は、説明のため、実際には存在しない小さい入力を使用しております。 全ての .ブロックが消滅したとき、以下のような状態になります。

図は、oブロックを○、xブロックを×、+ブロックを★、-ブロックを■で表現したものになります。

例


入力例 2

.oo...x....xoo.xooooo.xx..xxo..xx.xoox.o..x..oo.o.
o..ox.xoxxox.xo..ooxx.ox.o.xooo.....x...ooxxo.o..x
x...x..oxxox.o..oxox.xoxo...oxo..oo....oxx.x...x.x
.xoo.........xo.xxx...x.o.xoox...o.o.x..ox.xx.oxo.
o.x...x.x.o.o...xo..oxxxo.xoo.xo.xo.ox.o...o...o..
xo.o.x..o.xx..o.....x..o.o....x.....ooo.oo.ooxx..o
.xx.o.xoo.x.xxx.x.o.xxoo.ox.o.oo.x.xxo..ox.x.o.o.o
.ox.o..xxo.ooxo.x.x.xx.xx.x...ooo.o..x....xo....ox
xx..ox.xx.x.x...ooxxox.oxx.o.oo.xo.o..x.x.xx..xxx.
o....o..x..xoxxx....o....x....x.o.o.x....ooo...o..
.xo.x...xox.............xo..xo....x..xoo.xx...x.ox
.oxxxxx.xx..o.oxoxx...x...x..x.oxxoxxo..oxx..xx...
.o..x.x.o...x..oo..o.x..xxox..o.oo.....x..x..o.oo.
ox.xo.xx.x..xo.oxooo..o.xxo.xox.o.x..xoo..o.x..oo.
.xoox...xoox...ooxx......o.oox....x.x.ox..o.ox.o.x
.o..x.xx..x....o..x.ox...oxooo....x..x.......o..x.
.o.xx..x..ox...o.o.xoo..oxx..oxo.oo..o.x.o.o....oo
x..xx.....x...o.xx.x..xo..x.oxx...xo.o...xx...xo.o
xx.oox.oxxo...ox...o.x..xo.oooxo..x..ox.ox...o...x
.oo...o.....o...xooxoxox.x.x...oo..xo.x.oo.x.xxxo.
oox..o.x.xo...oox.x..x..o.x.xxxo.x.x...o.o..o.....
xo.xx.o.x.xx.xo..oox..o..xoo...xo.o..ooo......oxox
.o..xx..xxo.....x...o.x..xxoxooxo..ooo.xx.....x..o
o..o.x..x.o.ox.oxx.o.xo.xox.o....o.o.x.ox...x.xox.
...o..oxoooo.x.o..oo....xo.xxxxxox..o.o.o....oo.o.
.xxo..x.x.oxoo.x.o....xxoxoo...ooxx.ox...ooo..x.x.
.xo..xxx.o..ox.oo....oox...xxo...oxx.o.ooo.o...oox
....ox.x.oo.o.x..x....o...o...x.oxx.oxo..o...oooo.
xxx..ox...x.x.x.o.x......xx..xx.ox.x......o.x..o.x
...oox.xox.ox.xx.x....x.oxxx..xxoxo.o.o....oxx...x
xoo.....ooxxxoxxxxx.....oxxx.....x..x...x..o.x..oo
..xo.oooxo...xx..x....x..oox.x.oxooo.oxoox...oxxo.
...ox.o.xo.oxxx....o..xooxox..x.xo...oo.xooo.x.xox
xx..o.oo...ox.x.x.ooxxxox...o..ox...ox....xx..xo..
xx.ooo..o.xoox.x.oox.o.xxxoooox.o..oo..x.x.xx....o
.oo...oxo.x.o.xx.o..xoxxox..x.xx.......xoxoxx.oxoo
...ox.ooooo.xxx.x..o.x.x.....xo..oo.xx..xo....ooox
.o.xx..o..xoxxo.xoo..xooo.xx.ox.xxxo.o.xo..o...x..
.xx...xoo.x.x.o.xo.o.xoxxo..oxo.ox....xoox.ox.xxxo
x.x..xox.....oxo..oo.ooxo...xo...ox.o..oo....ox.xo
.xx....xx.o....x.xoo.x.x.oxxooxxo..x..x..xxxxxo.ox
.o.x.x..x.oxoxx.xo..ox...ox.o......x.xxo...oo.oxx.
xx.xoxo.oo....ooxoxxxxxxxxoxxxx...oxx.o..oo.xo..xo
xx....o.o.xo.oox...o..o.x..o..x..x..xoxooxo.ox.oox
o.x..o.x..o.oo..ooo.x.......x.xx.o...oo..ox.x.xxx.
.xxoxoxxoo.o.o......xx..xxo.x....oox.x.xo.x..x....
oxx.oox....oxxx....x.oox..o.xx..xoxx.x.oo.o.o.x..x
....x.x.ox.xooxo.x..x.xo....oxoo..o.x.oo..o..x..x.
..o.o.xx....o...oooo...x.oox..oxox.x.x.x.xx...o.oo
..x.o.xo...xxx.x.ox.....oxo..ooxo..x.o.x..ooooxxox

出力例 2

.oo...x....xoo.xooooo.xx..xxo..xx.xoox.o..x..oo.o.
o..ox.xoxxox.xo..ooxx.ox.o.xooo.....x...ooxxo.o..x
x...x..oxxox.o..oxox.xoxo...oxo..oo....oxx.x...x.x
.xoo.........xo.xxx...x.o.xoox...o.o.x..ox.xx.oxo.
o.x...x.x.o.o...xo..oxxxo.xoo.xo.xo.ox.o...o...o..
xo.o.x..o.xx..o.....x..o.o....x.....ooo.oo.ooxx..o
.xx.o.xoo.x.xxx.x.o.xxoo.ox.o.oo.x.xxo..ox.x.o.o.o
.ox.o..xxo.ooxo.x.x.xx.xx.x...ooo.o..x....xo....ox
xx..ox.xx.x.x...ooxxox.oxx.o.oo.xo.o..x.x.xx..xxx.
o....o..x..xoxxx....o....x....x.o.o.x....ooo...o..
.xo.x...xox.............xo..xo....x..xoo.xx...x.ox
.oxxxxx.xx..o.oxoxx...x...x..x.oxxoxxo..oxx..xx...
.o..x.x.o...x..oo..o.x..xxox..o.oo.....x..x..o.oo.
ox.xo.xx.x..xo.oxooo..o.xxo.xox.o.x..xoo..o.x..oo.
.xoox...xoox...ooxx......o.oox....x.x.ox..o.ox.o.x
.o..x.xx..x....o..x.ox...oxooo....x..x.......o..x.
.o.xx..x..ox...o.o.xoo..oxx..oxo.oo..o.x.o.o....oo
x..xx.....x...o.xx.x..xo..x.oxx...xo.o...xx...xo.o
xx.oox.oxxo...ox...o.x..xo.oooxo..x..ox.ox...o...x
.oo...o.....o...xooxoxox.x.x...oo..xo.x.oo.x.xxxo.
oox..o.x.xo...oox.x..x..o.x.xxxo.x.x...o.o..o.....
xo.xx.o.x.xx.xo..oox..o..xoo...xo.o..ooo......oxox
.o..xx..xxo.....x...o.x..xxoxooxo..ooo.xx.....x..o
o..o.x..x.o.ox.oxx.o.xo.xox.o....o.o.x.ox...x.xox.
...o..oxoooo.x.o..oo....xo.xxxxxox..o.o.o....oo.o.
.xxo..x.x.oxoo.x.o....xxoxoo...ooxx.ox...ooo..x.x.
.xo..xxx.o..ox.oo....oox...xxo...oxx.o.ooo.o...oox
....ox.x.oo.o.x..x....o...o...x.oxx.oxo..o...oooo.
xxx..ox...x.x.x.o.x......xx..xx.ox.x......o.x..o.x
...oox.xox.ox.xx.x....x.oxxx..xxoxo.o.o....oxx...x
xoo.....ooxxxoxxxxx.....oxxx.....x..x...x..o.x..oo
..xo.oooxo...xx..x....x..oox.x.oxooo.oxoox...oxxo.
...ox.o.xo.oxxx....o..xooxox..x.xo...oo.xooo.x.xox
xx..o.oo...ox.x.x.ooxxxox...o..ox...ox....xx..xo..
xx.ooo..o.xoox.x.oox.o.xxxoooox.o..oo..x.x.xx....o
.oo...oxo.x.o.xx.o..xoxxox..x.xx.......xoxoxx.oxoo
...ox.ooooo.xxx.x..o.x.x.....xo..oo.xx..xo....ooox
.o.xx..o..xoxxo.xoo..xooo.xx.ox.xxxo.o.xo..o...x..
.xx...xoo.x.x.o.xo.o.xoxxo..oxo.ox....xoox.ox.xxxo
x.x..xox.....oxo..oo.ooxo...xo...ox.o..oo....ox.xo
.xx....xx.o....x.xoo.x.x.oxxooxxo..x..x..xxxxxo.ox
.o.x.x..x.oxoxx.xo..ox...ox.o......x.xxo...oo.oxx.
xx.xoxo.oo....ooxoxxxxxxxxoxxxx...oxx.o..oo.xo..xo
xx....o.o.xo.oox...o..o.x..o..x..x..xoxooxo.ox.oox
o.x..o.x..o.oo..ooo.x.......x.xx.o...oo..ox.x.xxx.
.xxoxoxxoo.o.o......xx..xxo.x....oox.x.xo.x..x....
oxx.oox....oxxx....x.oox..o.xx..xoxx.x.oo.o.o.x..x
....x.x.ox.xooxo.x..x.xo....oxoo..o.x.oo..o..x..x.
..o.o.xx....o...oooo...x.oox..oxox.x.x.x.xx...o.oo
..x.o.xo...xxx.x.ox.....oxo..ooxo..x.o.x..ooooxxox