聚会上,白茶请来了 bobby, lr580 和 dayuanx 三人。果冻即兴改编了一款卡牌游戏,并请三人试玩。如果游戏具有潜力,果冻将打算将其做为二次元氪金卡牌手游割韭菜。
UNO 是一种桌游。玩家需在出剩最后 1 张牌时喊出 UNO,故而得名。
三名玩家 bobby、lr580 和 dayuanx 正在玩一种修改过的 UNO 游戏(因此即使你玩过 UNO 也请阅读下面的规则说明)。
在每轮游戏开始的时候,三名玩家各抽取七张牌,其他牌置于弃牌堆。每张牌包含两个属性(颜色和数字),所有牌都是普通牌,没有万能牌或功能牌。bobby 会根据弃牌堆最上面的一张牌出本轮游戏的第一张牌,游戏开始。
出牌按照固定的顺序进行,即按照 bobby \to lr580 \to dayuanx \to bobby \to lr580 \to dayuanx \to\cdots 的顺序出牌。每次出的牌都必须和弃牌堆最上面一张牌(也称为参照牌)的颜色或数字相同,每次只可以出 1 张牌。出的牌会被放在弃牌堆的最上方,成为下一张参照牌。
假设参照牌为红 3,那你可以出红色的所有牌(颜色相同)和所有颜色的 3(数字相同);假设参照牌为黄 2,那你可以出黄色的所有牌(颜色相同)和所有颜色的 2(数字相同)。
若玩家无牌可出就直接跳过(既不出牌也不去牌堆摸牌),让下家出牌。如果连续两人都无牌可出,那么接下来的玩家可不受限制地任意出 1 张牌,游戏继续。若有玩家出完了手中所有的牌,游戏结束。最先出完所有牌的玩家获胜。
然而上面的比赛规则还是太复杂了,三名玩家都懒得思考最佳策略,他们都会按照同一种出牌策略出牌,即每次轮到自己时都总会选择手中从左往右顺序第一张满足出牌要求的牌打出去,只要有牌可出就必定会出牌。特别地,当因另两人无牌可出可以不受限制地出牌时会直接打出手中最左边的牌。
给定每个人的牌和游戏开始前弃牌堆最上面的那张牌,判断谁会取得游戏胜利。
输入
输入包含多组测试用例。
第一行包含一个整数 t \ (1 \leq t \leq 1000),表示你需要处理 t 组测试用例。
对于每组测试用例,输入第 1 行用于描述游戏开始前弃牌堆最上面那张牌的属性信息,第 2-8 行依次描述的是 bobby 手中从左到右的七张牌,第 9-15 行依次描述的是 lr580 手中从左到右的七张牌,第 16-22 行依次描述的是 dayuanx 手中从左到右的七张牌。每行均包含用空格间隔的一个字符串 s_i(保证是 red
、green
、blue
、yellow
中的其中一个)和一个整数 n_i \ (1 \leq n_i \leq 50),分别表示颜色和数字。
由于牌堆由多副牌混合而成,数据不保证每组测试用例中的 22 张牌两两不相同。
输出
对于每个测试用例,在单独的一行输出一个字符串,为 bobby
、lr580
、dayuanx
中的其中一个,表示游戏的赢家。
样例
标准输入 复制文本 |
3 blue 22 red 23 yellow 17 green 26 yellow 48 red 27 blue 26 blue 45 red 31 yellow 30 green 11 yellow 14 yellow 30 blue 37 yellow 2 yellow 20 yellow 44 green 24 yellow 21 green 2 red 28 green 15 yellow 39 green 30 red 47 green 23 green 42 red 20 blue 28 red 11 red 7 yellow 43 yellow 1 yellow 31 blue 42 red 2 blue 43 green 31 yellow 34 blue 2 yellow 44 green 44 blue 50 red 1 red 25 red 40 yellow 14 blue 35 red 19 red 19 blue 39 green 49 yellow 7 blue 24 blue 1 blue 35 yellow 46 yellow 44 blue 50 blue 20 red 28 yellow 37 red 27 blue 15 red 24 red 33 |
标准输出 复制文本 |
bobby dayuanx lr580 |
提示
对于测试用例 1,游戏玩家出牌情况如下表所示:
出牌人 | 颜色 | 数字 |
---|---|---|
bobby | 蓝色 | 26 |
lr580 | 蓝色 | 37 |
dayuanx | (跳过) | (跳过) |
bobby | 蓝色 | 45 |
lr580 | (跳过) | (跳过) |
dayuanx | (跳过) | (跳过) |
bobby | 红色 | 23 |
lr580 | 红色 | 31 |
dayuanx | 红色 | 28 |
bobby | 红色 | 27 |
lr580 | (跳过) | (跳过) |
dayuanx | (跳过) | (跳过) |
bobby | 黄色 | 17 |
lr580 | 黄色 | 30 |
dayuanx | 黄色 | 20 |
bobby | 黄色 | 48 |
lr580 | 黄色 | 14 |
dayuanx | 黄色 | 44 |
bobby | (跳过) | (跳过) |
lr580 | 黄色 | 30 |
dayuanx | 黄色 | 21 |
bobby | (跳过) | (跳过) |
lr580 | 黄色 | 2 |
dayuanx | 绿色 | 2 |
bobby | 绿色 | 26 |
由于 bobby 此时已经打出了他所有的牌,故赢家是 bobby。
来源
2021 软件学院 AK 杯程序设计竞赛 (现场赛)