#4391. 卡牌
卡牌
[丛雨]喜欢和朋友们玩一种桌游卡牌(其实就是UNO
)。这种卡牌共分四种颜色:红色、绿色、蓝色及黄色,每种颜色各有写着 的数字牌和功能牌:skip
(跳牌)、reverse
(反转出牌方向)。另有一些转色牌,不属于任何颜色。
游戏开始时,丛雨、[芳乃]、[茉子]每人从牌堆抽出 张牌,由丛雨第一个出牌,出牌顺序由丛雨决定。丛雨可以将任意牌作为第一张牌打出,接下来所有人出牌遵守以下规则:
按照丛雨规定的出牌顺序轮流出牌,必须出一张且只能出一张。若无符合规则的手牌可出,三人游戏失败。
若打出非转色牌,则所打出的牌要么颜色与上一张牌相同,要么数字与上一张牌相同(数字牌),要么功能与上一张牌相同(功能牌)。若为功能牌,执行对应功能:
skip
:跳过下家出牌,由下家的下家打出下一张牌(由于只有 个人参加,下家的下家就是上家)。
reverse
:将原本顺时针的出牌顺序变为逆时针,或相反,并由变化后的下家(原来的上家)打出下一张牌。
若打出转色牌,则无论上一张牌是什么都可以打出,且出牌者可决定下家应出哪种颜色的牌。
首先出完手牌的人胜出。而丛雨认为如果三个人能接连打出最后一张手牌,那么应该算共赢
。
给出三人的手牌,请帮丛雨判断有没有共赢
的可能性。
输入格式(uno.in)
第一行一个数字 表示测试组数,接着有 组数据按如下格式输入。
第一行一个整数 ,表示每个人的手牌数。
接下来三行,每行分别描述了丛雨、芳乃、茉子的手牌。
描述方法是输入 个整数,每两个相邻的整数表示一张牌。
第一个整数表示颜色,用 表示红,黄,绿,蓝,若为 则为转色牌。第二个整数为数值或功能, 表示 skip
, 表示reverse
。对于转色牌,第二个整数无效。
输出格式(uno.out)
对于每组测试数据,若有可能共赢,输出Y
,否则输出N
,每次输出后换行。
输入样例
3
1
0 10
0 11
0 0
2
0 0 1 2
1 1 3 2
0 1 2 2
3
0 10 2 0 3 11
2 10 3 0 1 0
1 10 3 1 4 0
输出样例
Y
Y
Y
样例解释
第一组数据:丛雨规定顺序为丛雨-芳乃-茉子
丛雨打出红 skip
(胜利)——芳乃被跳过——茉子打出红色 (胜利)——芳乃打出红色 reverse
(胜利);
第二组数据:丛雨规定顺序为丛雨-茉子-芳乃
丛雨打出红色 ——茉子打出红色 ——芳乃打出黄色 ——丛雨打出黄色 (胜利)——茉子打出绿色 (胜利)——芳乃打出蓝色 (胜利);
第三组数据:丛雨规定顺序为丛雨-芳乃-茉子
丛雨打出红色 skip
——芳乃被跳过——茉子打出黄色 skip
——丛雨被跳过——芳乃打出绿色 skip
——茉子被跳过——丛雨打出绿色 ——芳乃打出蓝色 ——茉子打出蓝色 ——丛雨打出蓝色 reverse
(胜利)——茉子转色为黄色(胜利)——芳乃打出黄色 (胜利)。
数据范围
对于 的数据,满足 。 对于再 的数据,只有数字牌。 对于再 的数据,只有数字牌和转色牌。 对于 的数据,满足 。
Related
In following contests: