問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
(はじめに)
次はイレブンバックです。
問題 4 にて、大富豪では強さについて 3 が一番弱く、4, 5, 6, ..., K, A, 2, JOKER の順で強くなっていくという話がありました。
イレブンバックというものは場に J が出されると強さが逆転するというルールです。つまり、 3 が一番強く、4, 5, 6, ..., K, A, 2, JOKER の順で弱くなっていきます。
適切なフラグ管理によって強さを逆転するか否かを判定し処理することが出来ます。
実際にやってみましょう。
(問題)
現在場に出されている一番上のカード C と場に J が出されたかのフラグ F と A 枚の手札 T_1, T_2, ..., T_A が与えられます。F は True なら場に J が出たことを意味し、False なら場に J が出ていないことを意味します。手札の中で出せるカードを全部出力してください。ただし、C の数字は 8,JOKER でないものとします。
C
F
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、イレブンバック中ならばこの逆順) で出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
True か FalseTrue のとき、C の数字は 3,4,5,6,7,8,9,10,J のいずれかFalse のとき、C の数字は J ではないC7
True
8
H7 C9 D10 S2 D2 S8 H5 BJOKER
1
H5
CK
False
6
DK DQ D7 D8 D10 RJOKER
1
RJOKER