リバーシメニューのサムネイル
(問題 6)全方向での反転座標 C#編(paizaランク C 相当)

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

問題

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

(はじめに)



空点 (r, c) に p を置いたとき、8 方向すべてを探索し、反転される相手石の全座標を列挙します。

(問題)



盤・空点 (r, c)・手番 p が与えられます。8 方向すべてを探索し、反転される全座標を出力してください。該当しなければ 0 と出力してください。

入力される値

入力は以下のフォーマットで与えられます。


r c p
L_{a1} L_{b1} ... L_{h1}
L_{a2} L_{b2} ... L_{h2}
...
L_{a8} L_{b8} ... L_{h8}


ここで、L は 8 × 8 の盤面(8 行×8 列)を表します。

8 行にわたり、空白区切りで 8 個ずつ盤面の行が与えられます。
盤面の各要素は -, B, W のいずれかです。

入力は 9 行となり、末尾に改行が 1 つ入ります。


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

反転される各座標を 1 行に 1 つ、r c 形式で、行優先(r 昇順、r が同じなら c 昇順)で出力してください。該当がなければ 0 を 1 行で出力してください。

最後は改行し、余計な文字、空行を含んではいけません。

条件

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

・L は 8 × 8 の盤面で、各マスは -, B, W のいずれか
・1 ≦ r, c ≦ 8
・p は B または W の 1 文字
・(r, c) は空点( - )

入力例1

4 3 B
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - W B - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -

出力例1

4 4

問題一覧へ戻る

  1. paizaトップ
  2. レベルアップ問題集
  3. リバーシメニュー(言語選択)
  4. 問題一覧 C#編
  5. (問題 6)全方向での反転座標 C#編
ページの先頭へ戻る