#P1043. 游戏世界
显示设置
本题导航点一下展开
我的笔记
✕
游戏世界
题目描述
这个游戏里有 个玩家,每个玩家都有以下个人数据:
name:角色名称,字符串;level:等级,初始为 ;maxhp:生命值上限;hp:当前生命值,初始等于生命值上限;xp:经验值;atk:攻击力;def:防御力;zy:职业编号。
升级规则
- 从 级升到 级需要 点经验,其中 为玩家人数。
- 只要经验足够,就会连续升级;每次升级扣除对应的经验,并永久获得该职业的升级加成。
- 每次升级后,当前生命值会立刻补满为生命值上限。
职业与加成
职业编号 zy |
职业 | 初始攻击力 | 初始防御力 | 每升一级的加成 |
|---|---|---|---|---|
| 战士 | 攻击力、防御力、生命值上限各 | |||
| 刺客 | 攻击力 ,防御力、生命值上限各 | |||
| 肉盾 | 攻击力、生命值上限各 ,防御力 | |||
| 法师 | 攻击力、防御力、生命值上限各 | |||
其中 是输入给出的两个整数。
法师的附加属性:法师的普通攻击造成 点伤害后,会在接下来的 个回合内,每个回合开始时对敌人额外造成 点穿透伤害(无视防御)。由于法师每个回合都会攻击,该效果会被不断刷新并延长。
指令
已知有 次操作,每次操作是下列五种之一:
1 x y:把编号为 的玩家的经验值增加 ;若该玩家已淘汰则跳过。2 x:把所有玩家的经验值增加 。3 x y tf:编号为 的玩家向编号为 的玩家发起战斗申请。- 如果场上只剩下 名玩家,或者 或 已经被淘汰,或者 ,则跳过这次操作;
- 如果 ,表示对方拒绝了申请,跳过这次操作;
- 如果 ,表示对方接受了申请,开始战斗,规则如下:
- 战斗按回合进行,每个回合由 先出手攻击 ;若 尚未被击败,则 出手攻击 ;
- 一次普通攻击造成的伤害为 ,战斗中双方的属性不会改变,因此每回合造成的伤害是固定的;
- 如果双方造成的伤害都是 ,那么无论打多久都分不出胜负,此时跳过这次操作,任何人都不被淘汰;
- 否则先倒下的一方被淘汰。特别的,如果同一个回合内双方都会被击败,则先出手的 获胜。
4 x y:把编号为 的玩家的生命值增加 ,但不会超过其生命值上限;若该玩家已淘汰则跳过。5 x:把所有玩家的生命值增加 ,但不会超过各自的生命值上限。
输入格式
输入共 行。
第一行四个用空格隔开的整数,依次为 。
接下来 行,每行描述一名玩家,依次为:字符串 name、整数 health(初始生命值上限)、整数 xp(初始经验值)、整数 zy(职业编号)。
接下来 行,每行描述一次操作,格式如题目描述所示。
输出格式
按输入顺序输出所有未被淘汰的玩家的个人数据,每名玩家一行,用单个空格分隔:
name level maxhp atk def xp zy
其中 maxhp 为生命值上限,xp 为当前剩余经验值。
输入输出样例 #1
输入 #1
3 10 5 10
小P 100 0 1
小I 100 0 2
小R 100 0 3
2 5
3 1 3 1
3 2 3 0
1 1 4
3 1 2 1
5 100
1 1 9
3 1 3 0
2 12
3 1 3 1
输出 #1
小P 5 124 29 29 0 1
小R 3 110 11 29 8 3
说明
样例解释
初始共有三名玩家小P、小I、小R,生命值上限都是 、经验值都是 ;小P 是战士(攻击 、防御 ),小I 是刺客(攻击 、防御 ),小R 是肉盾(攻击 、防御 )。
- 第 次(
2 5):所有玩家的经验都 。因为 ,三人各升到 级,经验变为 。 - 小P(战士):攻击、防御、生命上限各 ,变为 ;
- 小I(刺客):攻击 ,防御、生命上限各 ,变为 ;
- 小R(肉盾):攻击、生命上限各 ,防御 ,变为 。
- 第 次(
3 1 3 1):小P 打小R。小P 对小R 的伤害为 ,小R 对小P 的伤害为 ,分不出胜负,跳过。 - 第 次(
3 2 3 0):,对方拒绝,跳过。 - 第 次(
1 1 4):小P 经验变为 。因为 ,小P 升到 级,经验变为 ,攻击、防御、生命上限各 ,变为 。 - 第 次(
3 1 2 1):小P 打小I,小I 接受。小P 对小I 的伤害为 ,小I 对小P 的伤害为 。小I 需要被攻击 次才会倒下,而小P 只需要承受 次攻击,因此小I 被淘汰,小P 剩余 点生命。 - 第 次(
5 100):所有玩家回血 ,小P 回满到 ,小R 回满到 。 - 第 次(
1 1 9):小P 经验变为 。因为 ,小P 升到 级,经验归 ,攻击、防御、生命上限各 ,变为 。 - 第 次(
3 1 3 0):,跳过。 - 第 次(
2 12):所有玩家经验 。小R 原有经验 ,变为 ;因为 ,小R 升到 级,经验变为 (不足以再升一级);小P 原有经验 ,变为 ;因为 ,小P 升到 级,经验归 。 - 第 次(
3 1 3 1):小P 打小R。此时双方伤害都是 ,分不出胜负,跳过。
最终小P 和小R 都没有被淘汰,按输入顺序输出他们的数据。
数据范围
- 对于 的数据,。保证没有法师职业。
- 对于 的数据,。
- 对于 的数据,,,玩家的初始生命值上限与初始经验值均不超过 ,操作中出现的 均满足 。