问题1161--菜哭武的游戏

1161: 菜哭武的游戏

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 256 MB

题目描述

天才程序员菜哭武无聊的时候喜欢看直播,最近他喜欢上了一个叫做的LCR的游戏,所以他每天都在看LCR相关的直播。
先来介绍下LCR游戏的规则:这是一个简单的游戏,所有玩家按照序号1到n坐成一个环,玩家2在玩家1的左侧,玩家n在玩家1的右侧。每个人首先有三个风车,从1号玩家开始,每个人掷出一组三个骰子。 每个骰子具有六个面,一个面是L,一个是C,一个面是R,其余三个面只有一个点('.')。 每掷出一个L,玩家必须将一个风车传递给他左边的玩家; 每掷出一个R,玩家需要将一个风车传递给他们右边的玩家; 每掷出一个C,玩家将一个风车放在不属于任何玩家的中央堆中。 如果掷到点的面,不需要采取任何行动。直到只有一名玩家拥有风车。 此外,以下规则适用:
1.没有风车的玩家不会退出游戏,因为他们可能会根据其他玩家的投掷结果获得风车。
2.如果一个玩家只有一个或两个风车,则他们只需要投掷一个或者两个骰子。对于没有风车的玩家,不需要投掷骰子。

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

输入

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

输出

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

其中c1,c2 ... cn是每个玩家在游戏结束时所拥有的风车数量(因为某些玩家赢了或者没有剩余的掷骰子结果)并且ct是中央堆中的风车数量。 此外,如果某个玩家赢了,你应该在他们的风车数后附加字符串“(W)”; 否则你应该在下一个滚动的玩家的风车数后附加字符串“(*)”。 
使用单个空行分隔测试用例。

样例输入 Copy

3 LR.CCR.L.RLLLCLR.LL..R...CLR.
5 RL....C.L
0

样例输出 Copy

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

来源/分类