#P6930. [ICPC 2017 WF] Get a Clue!
[ICPC 2017 WF] Get a Clue!
Description
20 世纪 40 年代在英国开发的 Cluedo 游戏是世界上最受欢迎的棋盘游戏之一。游戏的目标是确定谁谋杀了 Mr. Body,使用了什么武器,以及谋杀发生的地点。游戏使用一套卡牌,代表六个人(标记为 A,B,……,F),六种武器(标记为 G,H,……,L)和九个房间(标记为 M,N,……,U)。在游戏开始时,随机选择一张人物卡、一张武器卡和一张房间卡,并从牌堆中移除,因此没有人可以看到它们——它们代表凶手、谋杀武器和谋杀地点。剩下的 18 张牌被洗牌并发给玩家,从玩家 1 开始,然后是她右边的玩家 2,依此类推。一些玩家可能会比其他玩家多一张牌。对于这个问题,有四名玩家,所以玩家 4 右边的人是玩家 1。
游戏的其余时间用于寻找线索。玩家轮流行动,从玩家 1 开始并向右移动。每轮包括提出一个建议(包括一个谋杀嫌疑人、一种武器和一个房间),并询问其他玩家是否有证据可以反驳该建议。例如,你可能会对另一个玩家说:“我相信凶手是人物 A,使用武器 L,在房间 T。”如果其他玩家正好持有其中一张牌,该玩家必须向你(且仅向你)展示那张牌。如果他们有多于一张这样的牌,他们可以展示其中任意一张。
在提出建议时,你必须首先询问你右边的人是否有任何证据。如果他们没有,你继续询问他们右边的人,依此类推,直到有人有证据,或者没有人持有你建议中的任何牌。
即使你不是提出建议的人,很多时候你也可以获得信息。假设在上述例子中,你是第三个玩家,并持有牌 A 和 T。如果有人向建议者展示了证据,你就知道那一定是武器牌 L。记录每轮建议和谁提供了证据是玩游戏时的重要策略。
要赢得游戏,你必须提出指控,陈述你对凶手、武器和房间的最终猜测。在陈述你的指控后,你检查游戏开始时放置的一组三张牌——如果它们与你的指控匹配,你就赢了!不用说,在提出指控之前,你要绝对确定你的指控。
这是你的问题。你是玩家 1。给定一组发给你的牌和建议及证据的历史记录,你需要决定你距离能够提出指控有多近。
Input Format
输入以一个整数 开始,表示游戏期间提出的建议次数。接下来是一行包含发给你的五张牌,所有大写字母在范围 'A' 到 'U' 之间。剩下的 行中每行包含一个建议。每行以三个字符表示建议(按人物、武器、房间的顺序),后跟最多三个玩家的响应,从提出建议的玩家右边的玩家开始。如果玩家没有提供证据,则列出一个 '-'(破折号);否则列出一个“证据字符”。如果你看到了具体的证据牌(因为你提供了它或者你是接收证据的人),那么证据字符标识那张牌;否则证据字符是 '×'。注意,只有最后一个响应可以是证据字符。所有字符用单个空格分隔。输入中只出现有效的建议/响应序列。
Output Format
显示一个三字符的字符串,标识凶手、谋杀武器和房间。如果可以识别凶手,使用该人物的适当字母;否则使用 '?'。对谋杀武器和房间也做同样处理。
1
B I P C F
A G M - - -
AGM
2
A B C D H
F G M M
F H M - *
E??
3
A C M S D
B G S - G
A H S - - S
C J S *
???
Hint
时间限制:4 秒,内存限制:512 MB。
题面翻译由 ChatGPT-4o 提供。
京公网安备 11011102002149号