問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
(はじめに)
問題 9 までで大富豪の基本的な流れは完成したのでここからはローカルルールについてやっていきます。まず初めに 1 枚出しで適用できるローカルルールから始めていきます。まずはマーク縛りです。
マーク縛りとは、同じスートのカードが 2 枚連続で場に出された場合、それ以降は同じスートのカードしか出せなくなるという縛りです。JOKER に関しては縛り中でも出すことが出来ます。
では、実際にやってみましょう。
(問題)
現在場に出されている一番上のカード C とマーク縛りが起こったかのフラグ F と A 枚の手札 T_1, T_2, ..., T_A が与えられます。F は True ならマーク縛りであることを意味し、False ならマーク縛りでないことを意味します。手札の中で出せるカードを全部出力してください。ただし、C の数字は 8, J, 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 ではないC7
True
8
H7 C9 D10 S2 D2 S8 H5 BJOKER
2
BJOKER
C9
D9
True
7
DK DQ D7 C8 D10 RJOKER CK
4
RJOKER
DK
DQ
D10