#P13261. [GCJ 2014 #3] Last Hit
[GCJ 2014 #3] Last Hit
Description
Diana 需要你的帮助,在她最喜欢的游戏中尽可能赚取更多金币。她经常会遇到这样一种情况:她站在自己的防御塔附近,面对着 个怪物。在这种情况下,Diana 和防御塔轮流攻击怪物,且 Diana 先手。在她的回合中,Diana 可以选择攻击任意一个怪物(也可以选择跳过回合);在塔的回合中,塔会攻击距离它最近的存活怪物。
Diana 和塔都不能攻击已经死亡的怪物。
如果 Diana 攻击了某个怪物,则该怪物的生命值会减少 ;如果塔攻击怪物,该怪物的生命值会减少 。当怪物的生命值降到小于 1 时,它会被击杀。如果是 Diana 击杀了第 个怪物,她将获得 金币;如果是塔击杀了怪物,Diana 不会获得金币。
第 个怪物初始生命值为 。
怪物按照它们距离防御塔的远近顺序给出,也就是说,塔只有在编号小于 的怪物都死亡之后,才会攻击第 个怪物。
请你计算,Diana 最多可以获得多少金币?
Input Format
输入的第一行是测试用例数量 。接下来是 个测试用例。
每个测试用例第一行包含三个用空格分隔的整数,分别表示 、 和 。
接下来的 行中,第 行包含两个用空格分隔的整数,分别表示第 个怪物的生命值 和金币奖励 。
Output Format
对于每个测试用例,输出一行,格式为 "Case #x: y",其中 是测试用例编号(从 1 开始), 是 Diana 最多可以获得的金币数。
2
20 40 3
100 100
20 100
60 100
20 60 3
80 100
80 200
120 300
Case #1: 300
Case #2: 500
Hint
样例说明
在第二个样例中,Diana 应该放弃第一个怪物。她应在前两个回合中攻击第三个怪物,将其生命值削减至 80 点,然后她就可以轻松地拿到对第二个和第三个怪物的最后一击,从而获得两者的金币奖励。
限制条件
Small 数据集(10 分)
- 时间限制:
603 秒
Large 数据集(14 分)
- 时间限制:
1205 秒
翻译由 ChatGPT-4o 完成
京公网安备 11011102002149号