#GYM104741G. 我要成为宝可梦大师!

我要成为宝可梦大师!

本题没有可用的提交语言。

Description

Pecco是一名宝可梦训练家,今天他和他的朋友Index进行宝可梦对战。

一只宝可梦有六项能力值:HP物攻物防特攻特防速度。此外宝可梦具有1到2种属性

因为Pecco和Index都只带了一只50级的宝可梦,所以我们把他们的对战过程简化如下:

首先,速度较快的一方打出招式,之后两只宝可梦轮流打出招式(保证双方的速度不同)。招式分为物理招式特殊招式,并具有固定的属性威力命中率。使用招式后,先按照命中率计算能否命中,如果命中,可以使对方受到伤害(HP降低),伤害按以下公式计算:

其中:

  • 当招式是物理招式时,AD分别表示招式打出者的物攻和承受者的物防;当招式是特殊招式时,AD分别表示招式打出者的特攻和承受者的特防
  • P 表示技能的威力
  • k1表示属性一致加成,当招式的属性和宝可梦的其中一个属性相同时,,否则k1 = 1
  • k2表示属性相克加成。宝可梦世界中一共有18种属性:一般(Normal)、飞行(Flying)、火(Fire)、超能力(Psychic)、水(Water)、虫(Bug)、电(Electric)、岩石(Rock)、草(Grass)、幽灵(Ghost)、冰(Ice)、龙(Dragon)、格斗(Fighting)、恶(Dark)、毒(Poison)、钢(Steel)、地面(Ground)、妖精(Fairy)。下表每一行表示某属性的招式对各个属性的宝可梦的属性相克加成,例如使用火属性的招式攻击水属性的宝可梦时,。对于具有两个属性的宝可梦,分别计算属性相克加成然后相乘,例如使用冰属性的招式攻击飞行+龙属性的宝可梦时,k2 = 2 × 2 = 4一个特殊规则是,如果k2 = 0,那么伤害将直接为0,而不会按照上面的公式计算。
     一般格斗飞行地面岩石幽灵超能力妖精
    一般1⁄2×1⁄2×
    格斗1⁄2×1⁄2×1⁄2×1⁄2×1⁄2×
    飞行1⁄2×1⁄2×1⁄2×
    1⁄2×1⁄2×1⁄2×1⁄2×
    地面1⁄2×1⁄2×
    岩石1⁄2×1⁄2×1⁄2×
    1⁄2×1⁄2×1⁄2×1⁄2×1⁄2×1⁄2×1⁄2×
    幽灵1⁄2×
    1⁄2×1⁄2×1⁄2×1⁄2×
    1⁄2×1⁄2×1⁄2×1⁄2×
    1⁄2×1⁄2×1⁄2×
    1⁄2×1⁄2×1⁄2×1⁄2×1⁄2×1⁄2×1⁄2×
    1⁄2×1⁄2×1⁄2×
    超能力1⁄2×1⁄2×
    1⁄2×1⁄2×1⁄2×1⁄2×
    1⁄2×
    1⁄2×1⁄2×1⁄2×
    妖精1⁄2×1⁄2×1⁄2×
  • 表示1720之间的随机整数(包含边界)。
  • 注意最后的结果要向下取整,但至少为1。

Pecco和Index的对战地点选在白银山,这里终年下冰雹,每个回合结束后(双方轮流打出一个招式后),双方都会受到伤害:,其中hp表示该宝可梦的初始HP。为了简化题目,我们假设冰属性的宝可梦也会受到伤害,这与游戏的设定不同。

直到一方HP减少到0或更低,则该方落败。如果两方同时倒下,认为速度较快的一方落败。

假设Pecco和Index都很聪明,每回合都会令他们的宝可梦打出使自己获胜概率最高的招式。试求出 Pecco的胜率。

整个输入文件共12行,前6行为Pecco的宝可梦的描述,后6行为Index的宝可梦的描述。

每个宝可梦的描述的第一行包含6个正整数( ≤ 500),表示它的HP物攻物防特攻特防速度

接下来一行包含一个整数n),表示该宝可梦属性的数量。然后是n个属性字符串,表示该宝可梦的属性

接下来四行分别描述该宝可梦的四个技能。每行包含两个正整数php ≤ 300, h ≤ 100),表示威力是p、命中率是。然后是一个属性字符串t。再然后是一个字符串PhysicalSpecialPhysical表示这是物理招式,Special表示这是特殊招式。

属性字符串的取值包括:"Normal", "Fire", "Fighting", "Water", "Flying", "Grass", "Poison", "Electric", "Ground", "Psychic", "Rock", "Ice", "Bug", "Dragon", "Ghost", "Dark", "Steel", "Fairy"

输出一行一个实数,表示Pecco的胜率。如果你的答案与评测机的答案的绝对误差在10 - 4之内,则会被认为是正确的。

Input

整个输入文件共12行,前6行为Pecco的宝可梦的描述,后6行为Index的宝可梦的描述。

每个宝可梦的描述的第一行包含6个正整数( ≤ 500),表示它的HP物攻物防特攻特防速度

接下来一行包含一个整数n),表示该宝可梦属性的数量。然后是n个属性字符串,表示该宝可梦的属性

接下来四行分别描述该宝可梦的四个技能。每行包含两个正整数php ≤ 300, h ≤ 100),表示威力是p、命中率是。然后是一个属性字符串t。再然后是一个字符串PhysicalSpecialPhysical表示这是物理招式,Special表示这是特殊招式。

属性字符串的取值包括:"Normal", "Fire", "Fighting", "Water", "Flying", "Grass", "Poison", "Electric", "Ground", "Psychic", "Rock", "Ice", "Bug", "Dragon", "Ghost", "Dark", "Steel", "Fairy"

Output

输出一行一个实数,表示Pecco的胜率。如果你的答案与评测机的答案的绝对误差在10 - 4之内,则会被认为是正确的。

145 90 135 150 110 80
2 Electric Steel
110 70 Electric Special
90 100 Electric Special
80 100 Steel Special
150 90 Normal Physical
143 85 85 145 135 100
2 Psychic Fairy
80 100 Fairy Special
90 100 Psychic Special
80 100 Ghost Special
85 100 Normal Physical
1 100 100 100 100 105
1 Dragon
250 90 Normal Special
240 100 Normal Special
40 100 Normal Special
40 100 Normal Physical
112 100 100 100 100 100
1 Dragon
100 100 Normal Special
100 100 Ice Special
100 100 Fairy Special
100 100 Dragon Special
1.000000
0.225000