チェスメニューのサムネイル
ステイルメイト Elixir(Beta)編(paizaランク B 相当)

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

問題

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

  • はじめに


  • ここでは、ステイルメイトについて学習していきます。

    ひとつ前の問題「チェックメイト」ではチェックメイトの判定を行いました。ステイルメイトは、打てる手がないときに引き分けとなります。

    チェックメイトの判定とは大きく変わりませんが、チェックメイトはチェック状態で打つ手がない状態であるのに対し、ステイルメイトはチェックされていない状態で打つ手がない状態のことです。

    実装上ではひとつ前の問題「チェックメイト」と大きく変わりません。

    キャスリングはもし可能であるならば、キングが単独で行動できるので考慮しなくても大丈夫です。また、アンパッサンは考慮しない(該当するコマがない)ものとします。

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


  • 問題


  • 駒が置かれた盤面 L が与えられます。次のターンが白の場合、黒の場合、それぞれについてステイルメイトであるか判定してください。

    入力される値

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


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

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


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

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

    1 行目には白がステイルメイトされている場合は Yes を、そうでないときには No を、2 行目には黒がステイルメイトされている場合は Yes を、そうでないときには No を出力してください。

    条件

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

    ・L の要素は 1 文字目が B,W のいずれかで、2 文字目が R,B,N,P,Q,K のいずれかである 2 文字の文字列か --

    入力例1

    -- BR -- -- -- -- -- --
    -- -- -- -- -- -- -- BK
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    WP -- -- -- -- -- -- --
    WK BQ -- -- -- -- -- --

    出力例1

    No
    No

    入力例2

    BR -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    -- -- -- -- -- -- -- --
    WB -- BK -- -- -- -- --
    WK -- -- -- -- -- -- --

    出力例2

    Yes
    No

    問題一覧へ戻る

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