QOJ.ac

QOJ

Limite de temps : 2.0 s Limite de mémoire : 512 MB Points totaux : 100

#11724. 笑话

Statistiques

一种通常被称为“傻子游戏”(Fool’s Game)的纸牌游戏在俄罗斯非常流行。我们将描述该游戏的一种变体,供两名玩家使用一副 54 张牌(52 张标准牌加上两张大小王,分别为黑色和红色)进行游戏。

所有黑桃和梅花被视为黑色。所有红桃和方块被视为红色。大小王没有点数或花色,只有颜色。其中一种花色被指定为将牌(trump)。

初始时,两名玩家各有六张牌。其余 42 张牌按某种顺序构成牌堆。

游戏由若干轮组成。每轮开始前,每名玩家持有若干张牌,其中一名玩家为进攻方(starting),另一名玩家为防守方(covering)。进攻方首先在桌面上打出一张或多张点数相同的牌。进攻方不能打出大小王。打出的牌数不得超过防守方当前持有的牌数。防守方随后用手中的牌覆盖桌面上所有的牌,将它们叠放在未覆盖的牌上方。一张牌可以覆盖另一张牌,当且仅当满足以下至少一个条件:

  • 它具有相同的花色且点数更高(点数顺序为 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A,其中 2 为最小,A 为最大);
  • 它是将牌,且被覆盖的牌不是将牌(将牌只能由更大的将牌覆盖);
  • 它是大小王,且其颜色与被覆盖的牌的颜色相同;
  • 它是大小王,且其颜色与将牌花色的颜色相同。

当桌面上所有的牌都被覆盖后,进攻方可以再打出一些牌供防守方覆盖。同样,进攻方不能打出大小王。每张打出的牌的点数必须与此时桌面上已有的牌的点数之一相同。现在,新加入的牌必须由防守方覆盖,之后进攻方可以继续打出更多的牌,以此类推。进攻方打出的牌数不能超过防守方当前持有的牌数。

当防守方不能或不想覆盖桌面上所有未被覆盖的牌,或者进攻方不能或不想再打出牌时,该轮结束。在第一种情况下,当防守方声明不想覆盖桌面上所有未被覆盖的牌时,进攻方有机会再打出一些牌。打出的牌的点数必须与桌面上已有的牌的点数相同。桌面上未被覆盖的牌数不能超过防守方当前持有的牌数。此后,防守方输掉该轮,并收走桌面上所有的牌,将其加入到自己的手牌中。进攻方保持其进攻角色,并在下一轮继续先手。

在第二种情况下,当桌面上所有的牌都被覆盖,且进攻方不能或不想再打出牌时,防守方赢得该轮,桌上的牌被移出游戏。下一轮双方的角色互换:防守方变为进攻方,反之亦然。

在两轮之间,如果上一轮的进攻方手牌少于六张,她会从牌堆顶部逐一摸牌,直到正好有六张牌。之后,同样地,如果上一轮的防守方手牌少于六张,她也会从牌堆顶部逐一摸牌,直到正好有六张牌。

如果在某轮开始前,其中一名玩家没有牌,而另一名玩家有一张或多张牌,则没有牌的玩家赢得游戏。如果两名玩家都没有牌,则游戏以平局结束。如果两名玩家都至少有一张牌,但下一轮的进攻方手中所有的牌都是大小王,则进攻方无法出牌,游戏结束,下一轮的防守方赢得游戏。

两名玩家 Johann 和 Sebastian 将按照上述规则进行游戏。Johann 是第一轮的进攻方。

给定将牌花色、玩家初始手牌以及牌堆中剩余牌的顺序,在双方均采取最优策略的情况下,找出游戏的获胜者。两名玩家对游戏中的牌以及牌堆顺序拥有完全信息。

输入格式

第一行包含一个整数 $t$ ($1 \le t \le 10^4$),表示测试用例的数量。

每个测试用例由四行描述。第一行包含六个牌的描述,即 Johann 的手牌。第二行包含六个牌的描述,即 Sebastian 的手牌。第三行包含 42 个牌的描述,即牌堆中的牌,从上到下排列。第四行包含一个字符,表示将牌花色。

除大小王外,每张牌由其点数(‘2’...‘9’,‘T’ 代表 10,‘J’ 代表 Jack,‘Q’ 代表 Queen,‘K’ 代表 King,‘A’ 代表 Ace)后跟其花色(‘S’ 代表黑桃,‘C’ 代表梅花,‘D’ 代表方块,‘H’ 代表红桃)指定。红王由两个字符“RJ”指定。黑王由两个字符“BJ”指定。

每个测试用例中的 54 张牌各不相同。

输出格式

对于每个测试用例,输出一行,包含获胜者的名字,如果游戏以平局结束,则输出“Bach”。

样例

样例输入 1

2
TC QD 2S TH 4S 3C
AS RJ AC 7D 6C BJ
3D 4C 8C AD TD TS 7H JS KD 4H QC 6H 9D 7C 9H JC AH 5H 6S QH KS 5S 5D 3H JD JH 8H QS 2H 4D 5C 9S KH 6D 9C 8D 8S KC 7S 3S 2D 2C
S
TC 8S JS JD 5C 9C
QS 8C 3H 4D 4H 2D
QH 7S 7H 3C 2H 7C TD 9H 8D AH 7D QC JH 5D AS 5H 3D JC 2S 6D AC 9D 4C 6S KD 8H 6C 4S RJ KH 3S TS KC KS 5S QD 9S BJ 6H TH AD 2C
D

样例输出 1

Johann
Sebastian

说明

两个样例测试用例的第三行在显示时被分成了多行。在正式测试数据中,牌堆中的所有 42 张牌均在同一行中描述。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.