#P1161. 菜哭武的游戏

菜哭武的游戏

问题描述

天才程序员菜哭武无聊的时候喜欢看直播,最近他喜欢上了一个叫做 LCR 的游戏,所以他每天都在看 LCR 相关的直播。

先来介绍下 LCR 游戏的规则:这是一个简单的游戏,所有玩家按照序号 11nn 坐成一个环,玩家 22 在玩家 11 的左侧,玩家 nn 在玩家 11 的右侧。每个人首先有三个风车,从 11 号玩家开始,每个人掷出一组三个骰子。每个骰子具有六个面,一个面是 L,一个是 C,一个面是 R,其余三个面只有一个点(.)。每掷出一个 L,玩家必须将一个风车传递给他左边的玩家;每掷出一个 R,玩家需要将一个风车传递给他们右边的玩家;每掷出一个 C,玩家将一个风车放在不属于任何玩家的中央堆中。如果掷到点的面,不需要采取任何行动。直到只有一名玩家拥有风车。此外,以下规则适用:

  1. 没有风车的玩家不会退出游戏,因为他们可能会根据其他玩家的投掷结果获得风车。
  2. 如果一个玩家只有一个或两个风车,则他们只需要投掷一个或者两个骰子。对于没有风车的玩家,不需要投掷骰子。

现在,天才程序员菜哭武已经知道所有投掷骰子的结果,他想知道最后的结果是什么?

输入格式

输入将包含多个测试用例。每个测试用例将包含一行包含整数 nn(表示游戏中的玩家数量)和一个字符串(指定骰子投掷结果)。任何游戏中最多只有 1010 个玩家,该字符串仅包含字符 LCR.。在某些测试用例中,可能会有比所需更多的骰子结果(即某些玩家已经赢得游戏,但是会有投掷结果输入)。如果没有足够的骰子结果来完成这一轮(例如,只有两个骰子结果但是现在的玩家有 33 个或者更多的风车),那么应该忽略这些骰子。当 n=0n = 0 表示输入结束。

输出格式

对于每个测试用例,在第一行行输出字符串 Game i:(其中 ii 是从 11 开始的案例编号),然后是游戏状态的描述。该描述将由 n+1n + 1 行形式组成:

Player 1:c1
Player 2:c2
...
Player n:cn
Center:ct

其中 c1c_1c2c_2,……,cnc_n 是每个玩家在游戏结束时所拥有的风车数量(因为某些玩家赢了或者没有剩余的掷骰子结果)并且 ctct 是中央堆中的风车数量。此外,如果某个玩家赢了,你应该在他们的风车数后附加字符串 (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