問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
盤面についての情報が与えられます。
はじめ、プレイヤーの石が置かれているマスは '*' になっており、穴の空いているマスは '#' , 何も置かれていないマスは '.' になっています。
プレイヤーは盤面の '!' のマスに石を置き、
縦横斜めに自分の石ではさんだ連続した穴の空いていないマスの間に自分の石を置く。
新たに置いた石によってさらに石が置けるようになった場合でもその時点で操作を終える。
この操作を終えた後の盤面を出力してください。
なお、マスの座標系は左上端のマスの座標を ( y , x ) = ( 0 , 0 ) とし、
下方向が y 座標の正の向き、右方向が x 座標の正の向きとします。
例として、灰色のマスを穴の空いているマスとしたときに、
図 1 のような盤面のとき赤いマスに石を置くと図 2 のようになり、図 3 のような盤面のとき赤いマスに石を置くと図 4 のようになります。
図1
図2
図3
図4
H W
S_0
...
S_(H-1)
H 行での出力
・ 操作後の盤面を H 行で出力してください。
T_0
...
T_(H-1)
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ H, W ≦ 20
・ S は W 文字の文字列
・ S の各文字は '.' または '*' または '#' または '!'
・ '!' のマスは 1 つ
3 3
!.*
...
*.*
***
**.
*.*
5 5
*.*.*
.....
*#!.*
...#*
*.***
*.*.*
.***.
*#***
.**#*
*.***