大富翁游戏:计算获胜所需最少初始金币

vz879855 程序题 共 个子题

小明很喜欢玩大富翁游戏,这个游戏的规则如下:

  1. 游戏地图是有 N 个格子,分别编号从 1 到 N。玩家一开始位于 1 号格子。
  2. 地图的每个格子上都有事件,事件有以下两种类型: A)罚款 x 枚金币。如果 x 为负数,则表示获得 -x 枚金币; B)强制前进 y 个格子(输入数据保证,前进后不会越过 N 号格子)。
  3. 游戏开始时首先触发 1 号格子的事件,然后开始玩家回合。
  4. 玩家每回合可以选择前进 1 或 2 个格子(不可以不移动,不可以越过 N 号格子),之后触发停留的格子的事件。 4.1 如果触发的是 A 类事件,进行罚款。若罚款后金币数小于 0,则游戏失败,否则继续下一个回合; 4.2 如果触发的是 B 类事件,强行前进。 若强行前进后所在的格子为 A 类事件,则按照 4.1 的规则触发 A 类事件;若为 B 类事件,则当前回合不再触发 B 类事件。
  5. 如果玩家回合结束时,处在 N 号格子,且金币数大于等于 0,则游戏胜利。

可以看出,如果玩家一开始有足够多的金币,总是能够通过合理选择前进方案获得胜利。小明想知道,一开始最少需要多少金币,才有可能取得游戏胜利?

输入描述

第一行给出正整数 N,为地图的长度。 接下来 N 行,分别描述从 1 到 N 号格子的事件:A x 或者 B y。

输出描述

一个整数,要取得游戏胜利,最少需要的金币数。

输入样例

7
A -2
A 3
B 1
A 2
A 4
A 2
A 0

输出样例

2

提示

100%数据满足 $2 ≤ N ≤ 128$,$-8 ≤ x ≤ 8$,$0 ≤ y ≤ 2$。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧