チェスメニューのサムネイル
キャスリング COBOL(Beta)編(paizaランク C 相当)

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

問題

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

  • はじめに


  • 最後に特殊なキャスリングについてです。

    キャスリングとは 1 手でルークとキングが同時に動かす手のことです。

    上の盤面から左下の盤面になるのをキングサイドキャスリング、右下の盤面になるのをクイーンサイドキャスリングといいます。

    -- -- -- -- -- -- -- --  
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    WR -- -- -- WK -- -- WR



    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    WR -- -- -- -- WR WK -- -- -- WK WR -- -- -- WR


    キャスリングができる条件は以下の全てを満たしているときです。

    ・チェックされていない

    ・キャスリングで動くルークとキングが一度も動いていない

    ・ルークとキングの間にコマがない

    ・キングが通過するマスおよび到達するマスが、相手の攻撃範囲に含まれていない

    ここではその条件の判定が出来ないので今回は無条件でできるものとします。

    実際にやってみましょう。


  • 問題


  • 駒が置かれた盤面 L が与えられます。L_{a1} = L_{h1} = WR、L_{e1} = WK、その他にはコマが置かれていません。文字列 S も与えられるので、S が king ならキングサイドキャスリング、queen ならクイーンサイドキャスリングを行ってください。

    入力される値

    S
    L_{a8} L_{b8} ... L_{h8}
    L_{a7} L_{b7} ... L_{h7}
    ...
    L_{a1} L_{b1} ... L_{h1}

    1 行目には 1 つの文字列 S が与えられます。

    i + 1 (1 ≦ i ≦ 8) 行目には n = 9 - i としたとき、8 つの文字列 L_{an},L_{bn},L_{cn},L_{dn},L_{en},L_{fn},L_{gn},L_{hn} が与えられます。

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


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

    答えを、8 行で出力してください。

    i (1 ≦ i ≦ 8) 行目には n = 8 - i としたときキャスリングした後の L_{an},L_{bn},L_{cn},L_{dn},L_{en},L_{fn},L_{gn},L_{hn} の 8 個を空白区切りで出力してください。

    条件

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

    ・S は kingqueen

    ・L_{a1} = L_{h1} = WR、L_{e1} = WK であり、その他は --

    入力例1

    king
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    WR -- -- -- WK -- -- WR

    出力例1

    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    WR -- -- -- -- WR WK --

    入力例2

    queen
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    WR -- -- -- WK -- -- WR

    出力例2

    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- WK WR -- -- -- WR

    問題一覧へ戻る

    1. paizaトップ
    2. レベルアップ問題集
    3. チェスメニュー(言語選択)
    4. 問題一覧 COBOL(Beta)編
    5. キャスリング COBOL(Beta)編
    ページの先頭へ戻る