T673027 猫猫虫的游戏(Hard Version)
题目背景
猫猫虫打到《丝之歌》的最终Boss啦!

题目描述
这个Boss肯定是比较难的,有非常快的走位,甚至会瞬移!但我们的猫猫虫历经千辛万苦打到这里,肯定磨练了技艺👍
最终决战在一个平台上,Boss会向左或者向右移动,也会瞬移,具体是:
- $L$ $x$:向左移动 $x$ 格
- $R$ $x$:向右移动 $y$ 格
- $Q$ $x$:瞬移到 $x$ 的位置
游戏里的攻击武器有五个等级,分别对应以下伤害:
- $0$ 级:$10$ 血
- $1$ 级:$12.5$ 血
- $2$ 级:$15$ 血
- $3$ 级:$17.5$ 血
- $4$ 级:$20$ 血
因为猫猫虫是平台跳跃游戏高手,它早就有自己的一套键位,不喜欢用默认的键位。而且,猫猫虫打了很多次这个Boss,发现对于它选的职业流浪者来说,只有以下几个键是对进攻有效的,于是它也只会用这几个键:
- $A$: 向左移动 $1$ 格
- $D$: 向右移动 $1$ 格
- $J$: 攻击
- $L$: 向当前朝向的方向移动 $2$ 格
- $U$: 给自己回 $5$ 血
实际上,在《丝之歌》里,Boss都是有碰撞箱的,我们认为这个Boss是 $1 \times 1$ 的格子。如果角色和Boss在**移动前、移动时或移动后相撞**(和Boss在一个格子重合),则角色在这一秒要扣 $b$ 血,但即使在一秒内有多次碰撞,也只会受到一次伤害。
Boss 每次移动看作连续经过路径上所有整点格子,如果角色在路径区间上(包含起点和终点),则判定为一次碰撞。
我们的武器也是有攻击范围的,当且仅当猫猫虫操控的角色朝向Boss,且与其的距离差不超过 $2$,才认为攻击有效。
若角色在位置 $5$,朝向右,则攻击有效范围是 $[5,7]$;若朝向左,则攻击有效范围是 $[3,5]$。
Boss和猫猫虫的打斗非常精彩,每一秒内的操作我们可以认为有以下顺序:
1. Boss移动
2. 角色移动/攻击/回血
Boss的初始血量为 $B_1$,位置在 $0$。猫猫虫操控的角色的初始血量为 $B_2$,位置在 $5$,朝向为左。
对于两个位置 $i$ 和 $j$,如果 $i < j$,则认为 $i$ 在 $j$ 左边。
由于猫猫虫动作比较慢,$1$ 秒只能按一个键,它现在把按过的键顺序告诉你,想知道打这个Boss具体花了多少时间?
输入格式
输入共 $N+2$ 行。
第一行,五个整数,$B_1$, $B_2$, $b$, $L$, $N$,分别表示Boss的初始血量,角色的初始血量,碰撞伤害,武器等级,总经历的时间。
第二行,$N$ 个字符,第 $i$ 个字符 $c_i$ 表示第 $i$ 秒猫猫虫的按键。
第 $i+2$ 到 $i+N+1$ 行,每一行会给出第 $i$ 秒Boss的移动方式,具体在上面已经给出。
输出格式
输出共 $1$ 行,一个整数表示猫猫虫打死Boss所需要的时间。如果时间内都打不死Boss或者角色在打赢Boss之前先死了,就输出 `Too hard!`
由于游戏特性,如果在同一秒死了,即同归于尽,还是输出 `Too hard!`(甚至在游戏里面还要再打一遍Boss😭)
说明/提示
$0 \leq B_1, B_2, b, L, N \leq 100$
这种条件比较多的模拟题,要注意事件发生顺序!
自己写变量名的时候可以**写点注释**