P11429 [COCI 2024/2025 #2] 谬误 / Paradoks

题目背景

译自 [COCI 2024/2025 #2](https://hsin.hr/coci/) T1。$\texttt{1s,0.5G}$。满分为 $50$。

题目描述

五个人**围坐在圆桌边上**玩游戏。顺时针方向上看过去,五个人分别是 $\text{Igor, Lea, Marino, Sonja, Viktor}$。 游戏有 $n$ 场。第一场第一个出牌的人为 $\text{Sonja}$,此后每一场第一个出牌的人都是上一场的胜者。每场中,五个人按顺时针方向上的顺序依次出牌,每个人**恰好出一次**牌。 每人手里都有 $n$ 张无色牌,编号 $1\sim n$。出牌时,选择手中的一张牌,并选择红蓝黄绿中的一种颜色涂在牌上打出。此外,我们要求,颜色和数字的组合之前没有被打出过。 每场中,第一个出牌的人打出的牌的颜色称为**场风**。每个人打的牌的颜色都应该尽可能是场风。如果没有打出场风的牌的话,那么**从此刻开始**(在接下来的场次中)他就再也不能打(**该场次**)场风的牌了。 每场中胜者的确定方式如下: - 如果有人打出过红牌,则取打出数字最大的那个人; - 否则,取打出牌颜色是场风中数字最大的那个人; 有时候,会有人打出的牌违反规则:牌的颜色与数字组合已经被打出过了,或者使用了被禁用的颜色。此时我们称这次出牌**谬误**(paradox)。谬误的出牌是无效的,也就是说,出的谬误牌会被忽略掉,不算入胜者的计算,(如果是第一次打出的话)也不算打出过。**保证每场第一个人出的牌不会谬误。** 给定 $n$ 场中,出的五张牌依次是什么。你需要确定这场中出现了多少个谬误,并输出谬误出现的场次,以及是谁打出了谬误。

输入格式

第一行,一个正整数 $n$。 接下来 $n$ 行,每行五个字符串,每个字符串两个字符,表示这轮依次打出的牌: - 第一个字符,一个大写英文字母,代表颜色: - $\texttt{C}$:红色; - $\texttt{P}$:蓝色; - $\texttt{Y}$:黄色; - $\texttt{Z}$:绿色。 - 第二个字符:数字 $1\sim 9$。

输出格式

第一行,输出悖论数量 $k$。 接下来 $k$ 行,每行先是一个数字,再是一个字符串(**全部大写**),表示悖论发生的场次,以及谁打出了悖论。**按顺序输出。**

说明/提示

#### 样例解释 样例 $1$ 解释见图片。 ![](https://cdn.luogu.com.cn/upload/image_hosting/ww0e92lc.png) #### 数据范围 对于 $100\%$ 的数据,保证 $1\le n\le 10$。 | 子任务编号 | 特殊性质 | 得分 | | :--: | :--: | :--: | | $ 1 $ | AB | $ 10 $ | | $ 2 $ | B | $ 10 $ | | $ 3 $ | | $ 30 $ | - 特殊性质 A: - 每场比赛的胜利者都是 $\text{Sonja}$。 - 特殊性质 B: - 谬误的原因只有一个:打出了之前打出过的牌。