#P2113. ACSL 2024-2025 Intermediate Division Contest #2 Uno Duo

ACSL 2024-2025 Intermediate Division Contest #2 Uno Duo

题目描述

Duo 卡牌游戏中,每张卡牌有 33 个特征:颜色、数字和符号。游戏开始时,有两张卡牌正面朝上,且玩家手中持有 77 张卡牌。在一轮游戏中,玩家可以从两张正面朝上的卡牌中选择一张,并尽可能多地将手中的卡牌与该牌堆上的卡牌进行匹配。如果两张卡牌恰好有两个特征匹配,就可以将一张卡牌放在另一张卡牌的上面。

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

在这个名为 Uno Duo 的游戏版本中,你的程序将模拟单个玩家在一轮游戏中的操作。这一轮游戏开始时,有两张卡牌正面朝上,且玩家手中持有 77 张卡牌(可将卡牌顺序视为从左至右排列)。在每一轮游戏中,对每个牌堆执行以下步骤:

  1. 从手牌中找到最左侧一张与该牌堆顶部卡牌相匹配的牌。将匹配的卡牌放在牌堆顶部从而形成一个正面朝上的牌堆。
  2. 尝试将手中尽可能多的卡牌与该牌堆上的卡牌进行匹配。每次都从最左侧的卡牌开始查看。如果卡牌匹配,就将其放在该牌堆最上面。
  3. 当手中的卡牌无法再继续匹配时,游戏结束。

你必须选择能够放置最多卡牌的牌堆。输出为一个字符串,包含放置最多卡牌的牌堆中从底部到顶部的所有卡牌,每张卡牌之间用一个空格隔开。如果出现平局,则输出牌堆 1

输入格式

将有两个字符串。第一个字符串是两张正面朝上的卡牌。第二个字符串是玩家手中的 77 张卡牌。所有卡牌之间用一个空格隔开。每个数据集中不会有重复的卡牌。

输出格式

输出一个字符串,包含可以放置最多卡牌的牌堆中,从底部到顶部的所有卡牌,每张卡牌之间用一个空格隔开。

输入输出样例

输入 #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 解释: 游戏开始时,正面朝上的两张卡牌和玩家手中持有的 77 张卡牌如下所示:

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

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

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