#P1161. 菜哭武的游戏
菜哭武的游戏
问题描述
天才程序员菜哭武无聊的时候喜欢看直播,最近他喜欢上了一个叫做 LCR 的游戏,所以他每天都在看 LCR 相关的直播。
先来介绍下 LCR 游戏的规则:这是一个简单的游戏,所有玩家按照序号 到 坐成一个环,玩家 在玩家 的左侧,玩家 在玩家 的右侧。每个人首先有三个风车,从 号玩家开始,每个人掷出一组三个骰子。每个骰子具有六个面,一个面是 L
,一个是 C
,一个面是 R
,其余三个面只有一个点(.
)。每掷出一个 L
,玩家必须将一个风车传递给他左边的玩家;每掷出一个 R
,玩家需要将一个风车传递给他们右边的玩家;每掷出一个 C
,玩家将一个风车放在不属于任何玩家的中央堆中。如果掷到点的面,不需要采取任何行动。直到只有一名玩家拥有风车。此外,以下规则适用:
- 没有风车的玩家不会退出游戏,因为他们可能会根据其他玩家的投掷结果获得风车。
- 如果一个玩家只有一个或两个风车,则他们只需要投掷一个或者两个骰子。对于没有风车的玩家,不需要投掷骰子。
现在,天才程序员菜哭武已经知道所有投掷骰子的结果,他想知道最后的结果是什么?
输入格式
输入将包含多个测试用例。每个测试用例将包含一行包含整数 (表示游戏中的玩家数量)和一个字符串(指定骰子投掷结果)。任何游戏中最多只有 个玩家,该字符串仅包含字符 L
、C
、R
和 .
。在某些测试用例中,可能会有比所需更多的骰子结果(即某些玩家已经赢得游戏,但是会有投掷结果输入)。如果没有足够的骰子结果来完成这一轮(例如,只有两个骰子结果但是现在的玩家有 个或者更多的风车),那么应该忽略这些骰子。当 表示输入结束。
输出格式
对于每个测试用例,在第一行行输出字符串 Game i:
(其中 是从 开始的案例编号),然后是游戏状态的描述。该描述将由 行形式组成:
Player 1:c1
Player 2:c2
...
Player n:cn
Center:ct
其中 ,,……, 是每个玩家在游戏结束时所拥有的风车数量(因为某些玩家赢了或者没有剩余的掷骰子结果)并且 是中央堆中的风车数量。此外,如果某个玩家赢了,你应该在他们的风车数后附加字符串 (W)
;否则你应该在下一个滚动的玩家的风车数后附加字符串 (*)
。
使用单个空行分隔测试用例。
样例输入
3 LR.CCR.L.RLLLCLR.LL..R...CLR.
5 RL....C.L
0
样例输出
Game 1:
Player 1:0
Player 2:0
Player 3:6(W)
Center:3
Game 2:
Player 1:1
Player 2:4
Player 3:1
Player 4:4(*)
Player 5:4
Center:1