1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Aランクレベルアップメニュー(言語選択)
  4. 問題一覧 Clojure(Beta)編
  5. 裏返せる可能性(斜め) Clojure(Beta)編

Aランクレベルアップメニューのアイコン
裏返せる可能性(斜め) Clojure(Beta)編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

盤面についての情報と石を置くマスの座標についての情報が与えられます。
石を置いたマスを '!' に、石を置いたマスとそのマスを通る斜め方向のマスを '*' に、それ以外のマスを '.' にした盤面を出力してください。

なお、マスの座標系は左上端のマスの座標を ( y , x ) = ( 0 , 0 ) とし、
下方向が y 座標の正の向き、右方向が x 座標の正の向きとします。

入力される値

H W Y X


・ 出力する盤面の行数 H , 列数 W と石を置くマスの y , x 座標である Y , X が 1 行で与えられます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

H 行での出力

・ 操作後の盤面を H 行で出力してください。

S_0
...
S_(H-1)

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 1 ≦ H, W ≦ 20
・ 0 ≦ Y < H, 0 ≦ X < W
・ S は W 文字の文字列
・ S の各文字は '.' または '*'
・ S[Y][X] = '.'

入力例1

3 3 0 0

出力例1

!..
.*.
..*

入力例2

10 10 5 5

出力例2

*.........
.*.......*
..*.....*.
...*...*..
....*.*...
.....!....
....*.*...
...*...*..
..*.....*.
.*.......*

問題一覧へ戻る

ページの先頭へ戻る