問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
(はじめに)
ここから、実際にゲームを行っていきます。大富豪には様々なルール、ローカルルールがあるのですが、一旦ルールとして 1 枚ずつ出していく、8 切り、イレブンバック、S3のみを考慮していきます。
大富豪は 3 が一番弱く、4, 5, 6, ..., K, A, 2, JOKER の順で強くなっていきます。スートでは強さは変わりません。
基本的には場に出されている一番上のカードより強いカードを出していく必要があります。特殊ルールによりカードの強さが逆転することもありますが今回はそのようなルールは発動していない前提でやっていきます。
実際にやってみましょう。
(問題)
現在場に出されている一番上のカード C と A 枚の手札 T_1, T_2, ..., T_A が与えられます。手札の中で出せるカードを全部出力してください。ただし、C の数字は 8, J, JOKER でなく、なおかつ、J は場に出されていないものとします。
C
A
T_1 T_2 ... T_A
出せるカードを q 枚としたとき答えを q + 1 行で出力してください。
1 行目には整数 q を出力してください。1 + i (1 ≦ i ≦ q) 行目には該当するトランプを出力してください。
ただし、出力する順番は BJOKER, RJOKER がある場合にはこの順番でまず出力し、そのあとはスートが強い順 (S > H > D > C) で、スートが同じ場合には数字が強い順 (2 > A > K > Q > ... > 4 > 3) で出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
C7
8
H7 C9 D10 S2 D2 S3 H5 BJOKER
5
BJOKER
S2
D2
D10
C9
CK
5
DK DQ D7 D8 D10
0