大富豪メニューのサムネイル
(問題 5)8切り Rust(Beta)編(paizaランク C 相当)

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

問題

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

(はじめに)

次は8切りです。

8切りとは、場に 8 のカードを出すことによって、場のカードのリセットを行うことが出来ます。リセットを行った後はまた自分が好きなカードを場に出すことが出来ます。ここで 8 を出した場合にはまた新たにリセット後にカードを出さなければいけません。

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

(問題)

現在場に出されている一番上のカード C と A 枚の手札 T_1, T_2, ..., T_A が与えられます。8切りが出来るか判定を行ってください。8切りが出来る場合上記のルールにおいてリセット後に出すカードを出力してください。ただし、C の数字は 8,J,JOKER でなく、なおかつ、J は場に出されていないものとします。

入力される値


C
A
T_1 T_2 ... T_A


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

2 行目には 1 つの整数 A が与えられます。

3 行目には A 個の文字列 T_1,T_2,...,T_A が与えられます。

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


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

8切りが出来ない場合は 1 行目に No を出力してください。

8切りが出来る場合は 1 行目に Yes を出力し、2 行目に8切りするために使うカード、3 行目にリセット後に出すカードを出力してください。ただし、リセット後に出したカードが 8 である場合は、もう一枚リセット後に出すカードを出力してください。

答えが Yes の場合、2 行目に出力されたカードは手札に入っており、場のカードよりも強く、数字が 8 である場合かつ、3 行目以降に出力されたカードは手札に入っており、それぞれ違うカードで、最後以外に出力されたカードが 8 かつ最後に出力したカードは数字が8でないか、手札のカードをすべて出した場合にのみ正解と判定されます。

条件

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

  • C はトランプのカードで数字は 8,J,JOKER ではない


  • 1 ≦ A ≦ 26


  • T_i (1 ≦ i ≦ N, 1 ≦ j ≦ A_i) はトランプのカードで同じカードは現れないかつ C とすべて異なる
  • 入力例1

    C7
    8
    H7 C9 D10 S2 D2 S8 H5 BJOKER

    出力例1

    Yes
    S8
    H5

    入力例2

    CK
    5
    DK DQ D7 D8 D10

    出力例2

    No

    問題一覧へ戻る

    1. paizaラーニングトップ
    2. レベルアップ問題集
    3. 大富豪メニュー(言語選択)
    4. 問題一覧 Rust(Beta)編
    5. (問題 5)8切り Rust(Beta)編
    ページの先頭へ戻る