#P2113. ACSL 2024-2025 Intermediate Division Contest #2 Uno Duo
ACSL 2024-2025 Intermediate Division Contest #2 Uno Duo
题目描述
Duo 卡牌游戏中,每张卡牌有 个特征:颜色、数字和符号。游戏开始时,有两张卡牌正面朝上,且玩家手中持有 张卡牌。在一轮游戏中,玩家可以从两张正面朝上的卡牌中选择一张,并尽可能多地将手中的卡牌与该牌堆上的卡牌进行匹配。如果两张卡牌恰好有两个特征匹配,就可以将一张卡牌放在另一张卡牌的上面。

ACSL 版卡牌使用四种颜色(R = 红色,Y = 黄色,G = 绿色,B = 蓝色)、四个数字(1、2、3、4)和四种符号(X = 叉号,O = 圆形,S = 正方形,T = 三角形)。每张卡牌用一个包含 个字符的字符串表示,并按照颜色、数字、符号的顺序依次排列。例如,左侧所示的卡牌 R4S 是一张颜色为红色,数字为 4,符号为正方形的卡牌。有 张卡牌可能会被放在这张卡牌的上面:颜色为红色,数字为 1、2 或 3,符号为正方形的卡牌;颜色为黄色、绿色或蓝色,数字为 4 ,符号为正方形的卡牌;颜色为红色,数字为 4 ,符号为叉号、圆形或三角形的卡牌。


在这个名为 Uno Duo 的游戏版本中,你的程序将模拟单个玩家在一轮游戏中的操作。这一轮游戏开始时,有两张卡牌正面朝上,且玩家手中持有 张卡牌(可将卡牌顺序视为从左至右排列)。在每一轮游戏中,对每个牌堆执行以下步骤:
- 从手牌中找到最左侧一张与该牌堆顶部卡牌相匹配的牌。将匹配的卡牌放在牌堆顶部从而形成一个正面朝上的牌堆。
- 尝试将手中尽可能多的卡牌与该牌堆上的卡牌进行匹配。每次都从最左侧的卡牌开始查看。如果卡牌匹配,就将其放在该牌堆最上面。
- 当手中的卡牌无法再继续匹配时,游戏结束。
你必须选择能够放置最多卡牌的牌堆。输出为一个字符串,包含放置最多卡牌的牌堆中从底部到顶部的所有卡牌,每张卡牌之间用一个空格隔开。如果出现平局,则输出牌堆 1。
输入格式
将有两个字符串。第一个字符串是两张正面朝上的卡牌。第二个字符串是玩家手中的 张卡牌。所有卡牌之间用一个空格隔开。每个数据集中不会有重复的卡牌。
输出格式
输出一个字符串,包含可以放置最多卡牌的牌堆中,从底部到顶部的所有卡牌,每张卡牌之间用一个空格隔开。
输入输出样例
输入 #1
R4S B3O
R3X B1T B2T R1X B3X B1X Y4O
输出 #1
B3O B3X R3X R1X B1X B1T B2T
输入 #2
R4S B3O
R4X B4X B3X B3T G3T G1T R1O
输出 #2
R4S R4X B4X B3X B3T G3T G1T
输入 #3
B1T B2T
G1O B1O R1T B4T G4O R4O R1X
输出 #3
B1T B1O G1O G4O R4O
输入 #4
G3S Y4T
R3S G1O B4X G2S Y4S G3T G3X
输出 #4
G3S R3S
输入 #5
B1S Y4O
B4O Y3O R4X B2X G2X Y3T R3S
输出 #5
Y4O B4O
输入 #6
G2T G3X
Y1S G4S B4S G2S R1T G2X Y2T
输出 #6
G3X G2X G2S G4S B4S
说明/提示
【样例解释】
样例 #1 解释: 游戏开始时,正面朝上的两张卡牌和玩家手中持有的 张卡牌如下所示:

图示展示了可以放置在牌堆 2 上的卡牌。可以与 B3O 进行匹配的第一张卡牌是 B3X,因此该卡牌被移到正面朝上的牌堆上面。

接下来的卡牌匹配情况如下所示:

此时,玩家手中唯一剩下的卡牌是 Y4O。该卡牌无法放置在牌堆 2 上面,因此可以放置在牌堆 2 上面的卡牌(包括正面朝上的卡牌)是:B3O B3X R3X R1X B1X B1T B2T.
没有卡牌可以放置在牌堆 1 上。但是,如果牌堆 1 是 R4X,那么 R3X、R1X、B1X 和 B2T 这些卡牌就可以放置在牌堆 1 上。
因此,输出含有 张卡牌的牌堆:B3O B3X R3X R1X B1X B1T B2T.