問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
(はじめに)
ダウンナンバーというローカルルールが存在します。ダウンナンバーとは、場に出ているカードで同じマークならば、1 つ弱い数字を出すことが出来るというルールです。
例えば、S9に対してS8を出すことが出来ます。しかし、イレブンバック中はダウンナンバーを行うことが出来ません。
実際にやってみましょう。
(問題)
現在場に出されている一番上のカード 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 ではないH6
False
3
H5 H7 C5
2
H7
H5
C5
True
3
C4 C6 C7
1
C4