昨夜圆车
题目背景
请选手注意,即使你曾经游玩过与题目中提到的游戏类似的其他游戏,也请你仔细阅读题目描述,否则任何因题目阅读不仔细而导致的失分将不予申诉。
$awa$ 最近在玩一款名叫 “昨夜圆车” 的手机游戏。作为一款优秀的手机游戏,它的游戏数值必然是令人称赞的。最近,她在观看 “皿狠皮车” 的直播间时,不时传出 “超大杯!”“超小杯!” 等声音。这不神奇吗,细看主播原来在拿 Excel 对干员进行 DPS、DPH 和总伤的计算。$awa$ 也想自己算出干员的数值,并看看主播究竟有没有骗人,于是她把这个问题交给了你。
题目描述
概念介绍
干员,是游戏 “昨夜圆车” 中的我方单位,可以对敌人造成伤害。我们通过
基础攻击力
伤害类型
攻击速度
攻击持续时间
这四个属性描述一个干员。敌人,是游戏 “昨夜圆车” 中的敌方单位,不会移动,无限血量,具有
防御力
法抗
两个属性,保证敌人一定在干员的攻击范围内,且只受到来自干员的伤害。拐,可以对干员进行增益或者对敌人进行减益的操作(持续时间无限),具体下文描述。
DPS
,Damage Per Second,攻击持续时间每秒造成的 平均 伤害。DPH
,Damage Per Hit,每次攻击造成的伤害。总伤
,攻击持续时间内造成的总伤害。
伤害计算
单次物理伤害,由伤害类型为物理伤害的干员发出,计算公式为
\[DMG_p=\max{(0.05AM, AM-[(1-I_p)*D])}\]其中:
- $A$ 为基础攻击力值;
- $M$ 为最终的攻击力倍率;
- $I_p$ 为百分比无视防御的值;
- $D$ 为目标的防御力。
单次法术伤害,由伤害类型为法术伤害的干员发出,计算公式为
\[DMG_a=\max{(0.05AM, 0.01AM*[100-(1-I_p)*D] )}\]其中:
- $A$ 为基础攻击力值;
- $M$ 为最终的攻击力倍率;
- $I_p$ 为百分比无视法术抗性的值;
- $D$ 为目标的法术抗性。
攻击速度
实际攻击间隔,即一次攻击后等待的时间,计算公式为
\[T=\dfrac{100s}{\mathrm{clamp}(S,10,600)}\]其中:
- $S$ 为攻击速度;
- $\mathrm{clamp}(S,10,600)$ 代表在 $S\notin [10, 600]$ 时将会输出距离这两端极值中最近的值,否则输出原值。
注:每秒攻击次数 = 1s / 实际攻击间隔。
输入输出
Input
第一行,输入一个数字 $T$,表示进行 $T$ 次询问。
对于每次询问:
第一行,用空格分隔的四个信息,分别是:
基础攻击力
伤害类型
攻击速度
攻击持续时间
其中:
伤害类型
用 $p$ 表示物理伤害,$a$ 表示法术伤害;攻击持续时间
单位是秒。- 数值均为整数。
第二行,拐的数量 $m$。
接下来一行的 $m$ 个字符串(不会出现重复),代表拐的名称。
拐的名称 | 效果 |
---|---|
Warfarin | 干员攻击力 +90% |
Aak | 干员攻击力 +50% ,干员攻击速度 +50 |
Shamare | 敌人的防御力 -50% |
Saria | 干员造成的的法术伤害 +55% |
Eyjafjalla | 敌人的法术抗性 -25% |
注意,攻击力加成为加算,比如 +90%
和 +50%
的 buff 同在时,伤害变为原来的 $1+0.9+0.5=2.4$ 倍。(详见样例2)
第四行,敌人的 防御力
和 法术抗性
(整数)。
第五行,皿狠皮车计算的 总伤
(保留后的整数)。
现在,需要你计算 DPS
,DPH
,总伤
。
Output
对于每次询问:
第一行,该干员的 DPS
,DPH
(均向下取整,中间用空格分隔)。
第二行,
- 如果你计算的总伤和皿狠皮车计算的总伤(保留后的整数)不一致,输出
ruozhitutou
。 - 如果你计算的总伤和皿狠皮车计算的总伤(保留后的整数)一致,输出
langbaoqinqin
。
样例
样例输入 #1
1
2
3
4
5
1
100 p 100 1000
0
5 5
100000
样例输出 #1
1
2
100 100
ruozhitutou
样例解释 #1
干员有 100 攻击力,但是敌人的 100 防御力使得干员根本无法破甲,只能有保底的 5% 伤害。100的攻速使得干员能每秒攻击一次。
笨蛋狠宝忽视了敌方的防御力,从而得到了 100000 的总伤,误以为是十万大C,令人哈哈大笑。
样例输入 #2
1
2
3
4
5
6
1
100 p 100 500
2
Warfarin Aak
100 100
105000
样例输出 #2
1
2
210 140
langbaoqinqin
样例解释 #2
干员有 100 攻击力,但是通过拐使攻击力变为原来的 $1+0.9+0.5=2.4$ 倍。轻松高于敌人的 100 防御力使得干员破甲。攻速同时也得到了提升。
聪明狠宝考虑到了这些,这回是真正的十万大C。
提示
多玩昨夜圆车。
数据规模与约定
对于 20% 的数据,皿狠皮车不会笨笨计算失误,且 总伤
一定能被 攻击次数
整除, 攻击次数
一定能被 攻击持续时间
整除;
对于 40% 的数据,$T = 1$;
对于 60% 的数据,$T \leq 10^3$;
对于 100% 的数据,$1\leq T \leq 10^6$。
输入的数值均为整数。
输出的数值保留整数(向下取整)。
保证不会因为 double
的使用而造成精度误差。
注意
干员进行的攻击次数显然是整数。
DPS 描述的是攻击持续时间内的每秒平均伤害。
请注意整数运算造成的精度损失。
题目输入输出量较大,请使用较快的输入/输出方式。