Pku3915 Black Vienna
本题基于桌面游戏 Black Vienna。游戏中有三名玩家和 张牌,分别标记为 到 。其中 张牌被抽出并藏起来,组成「Black Vienna」团伙;剩下的牌洗混后发给三名玩家,每人 张。玩家之间从不互相展示手牌。
另有一叠「质询牌」,每张上写着三个互不相同、按字母升序排列的字母,例如 ACG 或 BHR。玩家按 的顺序轮流行动:轮到某名玩家时,他选出一张质询牌,正面朝上放到另一名玩家面前,被质询的玩家必须诚实地说出自己手上一共持有其中几个字母(但不说是哪几个)。所有玩家都能看到质询的结果。游戏持续到某名玩家推断出团伙的三张牌为止。
例如,假设手牌的分配与之后的过程如下:
玩家 1:DGJLP 玩家 2:EFOQR 玩家 3:ACHMN 团伙:BIK
第 1 轮:玩家 1 用 BJK 质询玩家 2,回答 0
第 2 轮:玩家 2 用 ABK 质询玩家 3,回答 1
第 3 轮:玩家 3 用 DEF 质询玩家 2,回答 2
第 4 轮:玩家 1 用 EIL 质询玩家 2,回答 1
第 5 轮:玩家 2 用 FIP 质询玩家 3,回答 0
第 6 轮:玩家 3 用 GMO 质询玩家 1,回答 1
第 7 轮:玩家 1 用 OQR 质询玩家 2,回答 3
第 8 轮:玩家 2 用 ADQ 质询玩家 3,回答 1
第 9 轮:玩家 3 用 EGJ 质询玩家 1,回答 2
事实上这局游戏并不需要进行到第 轮:经过充分的推理,玩家 在第 轮之后就能断定团伙是 BIK。
你的任务是分析若干局游戏的记录,求出最早在哪一轮之后可以确定团伙的三张牌。
输入格式
输入包含 到 组数据,最后一行只有一个 。
每组数据的第一行是记录的轮数 。
第二行是四个用空格分隔的字符串,依次为玩家 、、 的手牌以及团伙的牌。
接下来 行按顺序描述每一轮,每行三个用空格分隔的部分:被质询玩家的编号、质询的字母串、给出的回答。
所有字母串只包含 到 的大写字母,且严格按字母升序排列。同一个质询串可能在一局中出现多次。
输出格式
每组数据输出一行。如果列出的所有轮次结束后仍没有玩家能确定团伙,输出一个字符 ?;如果有玩家能确定团伙,输出最早的轮次编号,表示在这一轮之后至少有一名玩家能确定答案。
样例输入
9
DGJLP EFOQR ACHMN BIK
2 BJK 0
3 ABK 1
2 DEF 2
2 EIL 1
3 FIP 0
1 GMO 1
2 OQR 3
3 ADQ 1
1 EGJ 2
3
ABCDE FGHIJ KLMNO PQR
3 BKQ 1
1 ADE 3
2 CHJ 2
0
样例输出
8
?
样例解释
以第一组数据为例,站在玩家 (手牌 DGJLP)的角度推理:
- 第 轮
2 BJK 0:玩家 手上没有B、J、K; - 第 轮
3 ABK 1:玩家 的A、B、K中恰有一张; - 第 轮
2 DEF 2:D在玩家 手上,所以玩家 持有E和F,于是玩家 没有E、F; - 第 轮
2 EIL 1:玩家 已知持有E,所以他没有I、L; - 第 轮
3 FIP 0:玩家 没有F、I、P; - 第 轮
1 GMO 1:质询的是玩家 自己,对他没有新信息; - 第 轮
2 OQR 3:玩家 持有O、Q、R,于是玩家 没有这三张; - 第 轮
3 ADQ 1:玩家 没有D(在玩家 手上)、也没有Q(在玩家 手上),所以他持有A;结合第 轮的「A、B、K中恰有一张」,可知玩家 没有B、K。
此时玩家 知道自己和玩家 、玩家 都不持有 B、I、K,因此隐藏的三张牌就是 BIK,答案为 。从玩家 、 的角度同样推理,在前 轮内都无法更早得出结论。
第二组数据中,所有轮次结束后仍没有人能确定团伙,因此输出 ?。
数据范围
- 输入包含 到 组数据;
- 。
来源与许可
本题为 PKU 3915 试题「Black Vienna」,题面与测试数据整理自 BZOJ 2484。
样例 1
输入
9
DGJLP EFOQR ACHMN BIK
2 BJK 0
3 ABK 1
2 DEF 2
2 EIL 1
3 FIP 0
1 GMO 1
2 OQR 3
3 ADQ 1
1 EGJ 2
3
ABCDE FGHIJ KLMNO PQR
3 BKQ 1
1 ADE 3
2 CHJ 2
0
输出
8
?