编程题
### 问题描述 晓宇喜欢和朋友们玩一种桌游卡牌(其实就是 $UNO$ )。这种卡牌共分四种颜色:红色、绿色、蓝色及黄色,每种颜色各有写着 $0−9$ 的数字牌和功能牌:$skip$(跳牌)、$$reverse$$(反转出牌方向)。另有一些转色牌,不属于任何颜色。 游戏开始时,晓宇、小鹏、小耿每人从牌堆抽出 $N$ 张牌,由丛雨第一个出牌,出牌顺序由晓宇决定。晓宇可以将任意牌作为第一张牌打出,接下来所有人出牌遵守以下规则: 按照晓宇规定的出牌顺序轮流出牌,必须出一张且只能出一张。若无符合规则的手牌可出,三人游戏失败。 若打出非转色牌,则所打出的牌要么颜色与上一张牌相同,要么数字与上一张牌相同(数字牌),要么功能与上一张牌相同(功能牌)。若为功能牌,执行对应功能: - $skip$:跳过下家出牌,由下家的下家打出下一张牌(由于只有 $3$ 个人参加,下家的下家就是上家)。 - $reverse$ :将原本顺时针的出牌顺序变为逆时针,或相反,并由变化后的下家(原来的上家)打出下一张牌。 若打出转色牌,则无论上一张牌是什么都可以打出,且出牌者可决定下家应出哪种颜色的牌。 首先出完手牌的人胜出。而晓宇认为如果三个人能接连打出最后一张手牌,那么应该算共赢。 给出三人的手牌,请帮晓宇判断有没有**共赢**的可能性。 ### 输入格式 第一行一个数字 $T$ 表示测试组数,接着有 $T$ 组数据按如下格式输入。 第一行一个整数 $n$ ,表示每个人的手牌数。 接下来三行,每行分别描述了丛雨、芳乃、茉子的手牌。 描述方法是输入 $n×2$ 个整数,每两个相邻的整数表示一张牌。 第一个整数表示颜色,用 $0, 1, 2, 3$ 表示红,黄,绿,蓝,若为 $4$ 则为转色牌。第二个整数为数值或功能,$10$ 表示 $skip$ ,$11$ 表示 $reverse$ 。对于转色牌,第二个整数无效。 ### 输出格式 对于每组测试数据,若有可能共赢,输出 $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$(胜利)——芳乃被跳过——茉子打出红色 $0$ (胜利)——芳乃打出红色 $reverse$(胜利); 第二组数据:丛雨规定顺序为丛雨-茉子-芳乃 丛雨打出红色 $0$ ——茉子打出红色 $1$ ——芳乃打出黄色 $1$ ——丛雨打出黄色 $2$(胜利)——茉子打出绿色 $2$(胜利)——芳乃打出蓝色 $2$(胜利); 第三组数据:丛雨规定顺序为丛雨-芳乃-茉子 丛雨打出红色 $skip$——芳乃被跳过——茉子打出黄色 $skip$——丛雨被跳过——芳乃打出绿色 $skip$——茉子被跳过——丛雨打出绿色 $0$ ——芳乃打出蓝色 $0$ ——茉子打出蓝色 $1$ ——丛雨打出蓝色 $reverse$(胜利)——茉子转色为黄色(胜利)——芳乃打出黄色 $0$(胜利)。 ### 数据范围 对于 $20\\%$ 的数据,满足 $n = 1$ 。 对于再 $20\\%$ 的数据,只有数字牌。 对于再 $20\\%$ 的数据,只有数字牌和转色牌。 对于 $100\\%$ 的数据,满足 $n \le 6, T \le 10$ 。
查看答案
赣ICP备20007335号-2