#31317. 大富翁(rich)
大富翁(rich)
【题目描述】
胖头鱼正在和他的朋友们玩一款叫做大富翁的游戏,首先我们将参加游戏的 个玩家依次编号为 。
如图所示,游戏在一个环形的格子地图上进行,我们按顺序将每个格子编号为 ,此外,每个格子中还有一个整数。玩家们将会在格子之间移动,通常情况下,如果某个玩家在格子 ,则移动 步后他会到达格子 。只有一个例外,就是如果玩家在格子 ,则移动 步后他会到达格子 。

初始时所有玩家都在格子 ,并且都拥有 点能量和 个金币。然后每个玩家轮流行动,从玩家 开始,然后玩家 …… 以此类推,玩家 行动完后又轮到玩家 。但是只有能量大于 的玩家才能参与轮流行动,能量小于等于 的玩家将无法继续行动。每个玩家每次行动的规则如下:
- 首先当前玩家扔一次骰子,令骰子上显示的数是 。
- 然后当前玩家移动 步,令移动完后所在格子中的数为 。
- 如果 ,则回到第 步让当前玩家再次扔骰子,重复上述流程直到 。
- 此时 ,如果 为正数,则当前玩家获得 个金币,否则 为负数,当前玩家损失 点能量。
- 本次行动结束。
已知从游戏开始到现在所有玩家共扔了 次骰子,并且知道每次骰子上显示的数 ,求此时每个玩家拥有的金币数量。
【输入格式】
第一行包含四个整数 、 、 和 ,表示有 名玩家,地图中有 个格子,一共扔了 次骰子,每个玩家初始的能量为 。
第二行包含 个整数 ,按顺序给出地图中每个格子中的数。
第三行包含 个整数 ,按顺序给出每次骰子显示的值。
【输出格式】
只有一行共 个整数,按顺序输出每个玩家的金币数量,整数之间用空格隔开。
【样例 1 输入】
存放在试题目录下的 sample/rich/rich1.in 文件中。
2 6 4 1
5 3 8 4 0 1
3 4 2 4
【样例 1 输出】
存放在试题目录下的 sample/rich/rich1.out 文件中。
7 5
【样例 1 解释】
有 名玩家,共扔了 次骰子,初始时玩家 和 均在格子 。首先轮到玩家 扔骰子,得到 ,玩家 移动到格子 ,获得 个金币。然后轮到玩家 扔骰子,得到 ,玩家 移动到格子 ,需要再次扔骰子,所以接下来还是玩家 扔骰子,得到 ,玩家 移动到格子 ,获得 个金币。最后轮到玩家 扔骰子,得到 ,玩家 移动到格子 ,获得 个金币。最终玩家 获得 个金币,玩家 获得 个金币。
【样例 2 输入】
存放在试题目录下的 sample/rich/rich2.in 文件中。
2 6 4 1
5 3 8 -1 2 1
3 4 2 2
【样例 2 输出】
存放在试题目录下的 sample/rich/rich2.out 文件中。
0 15
【样例 2 解释】
有 名玩家,共扔了 次骰子,初始时玩家 和 均在格子 ,均拥有 点能量。首先轮到玩家 扔骰子,得到 ,玩家 移动到格子 ,损失 点能量,此时玩家 的能量为 ,无法再行动。然后轮到玩家 扔骰子,得到 ,玩家 移动到格子 ,获得 个金币。玩家 轮空,玩家 继续扔骰子,得到 ,玩家 移动到格子 ,获得 个金币。玩家 轮空,玩家 继续扔骰子,得到 ,玩家 移动到格子 ,获得 个金币。最终玩家 获得 个金币,玩家 获得 个金币。
【样例 3 和 4】
存放在试题目录下的 sample/rich/rich3.in 、 sample/rich/rich3.out 和 sample/rich/rich4.in 、 sample/rich/rich4.out 文件中。
rich.zip 【数据说明】
对于所有数据, 、 、 。
部分测试点的特殊属性如下:
- 对于数据点 , ,表示每次移动后必然会获得金币,并且每次移动的步数和格子里的数都较少。
- 对于数据点 , ,表示每次移动后必然会获得金币。
- 对于数据点 , ,表示没有玩家会损失能量值。
相关
在下列比赛中: