封锁
题目背景
Steve 带领队伍准备去 M 星消灭黑暗势力,即将降落时被 M 星上空的无人机拦截了。
题目描述
为了突破封锁,成功降落, Steve 使用了电磁干扰仪,使无人机开始自相残杀。
然而,情况很快就变得混乱,无法了解当前的情况。
幸好 Steve 的部队已经记录了开始混战前的状况,并设法获得了无人机执行操作的顺序。
每架无人机有 $5$ 项属性 $atk,def,mat,mdf,fix$ ,当前生命值 $hp$ ,当前坐标 $(x,y,z)$ ,当前水平朝向 $f$( 范围 0-7) 和竖直朝向 $h$( 范围 0-4) 。
每一时刻,所有存活的无人机会**先**向正前方移动一格。
随后,存活的无人机会**按编号从小到大**依次执行下列操作之一:
无操作 (N)
上下转向 (U/D) :改变 $h$ 的值,上为增加,下为减少,如果超过了范围就是无效操作,忽略。
左右转向 (L/R) :改变 $f$ 的值,左为增加,右为减少,循环(分别对应从上面看的逆时针,顺时针)。
例如:当 $h=4$ 时操作 U 无效,当 $f=0$ 时操作 R 会使
$f$ 变为 $7$ 。
修复 (F) :使 $hp$ 增加 $fix$ 点。
子弹 (A) :使位于这架无人机正前方**最近**的飞机受到伤害,伤害的值为当前飞机的 $atk$ 值与目标的 $def$ 值之差(差为负则不会造成伤害),**如果多架飞机处于同一位置,那么只有编号最小的飞机会受到伤害**。
激光 (M) :使位于这架无人机正前方的**所有**飞机受到伤害,伤害的值为当前飞机的 $mat$ 值与目标的 $mdf$ 值之差(差为负则不会造成伤害)。
注意:与开火飞机重叠的飞机不会受到伤害
如果受到伤害后, $hp\leq 0$ ,那么这架飞机就会坠毁。
对于 $f$ 和 $h$ ,它的“正前方”是这样定义的:
首先,根据 $f$ 确定 $x,y$ 方向,如下图。
![](https://cdn.luogu.com.cn/upload/pic/64952.png)
随后,根据 $h$ 进一步确定方向。
对于 $h=0$ 或 $h=4$ ,正前方是正下或正上( $x,y$ 不变, $z$ 变化)。
对于 $h=1$ 或 $h=3$ ,在上面方向的基础上再向下/上移动一格。
对于 $h=2$ ,正前方为水平方向( $x,y$ 如上所述, $z$ 不变)。
(有人反馈看不懂方向,这里直接给出 $f,h$ 和正前方
$(x,y,z)$ 的对应表)
![](https://cdn.luogu.com.cn/upload/pic/71703.png)
现在, Steve 告诉你了所有飞机初始的状态和之后执行的操作。
你需要告诉他,经过 $t$ 个时刻的混战之后,每架飞机的位置和生命值。
输入输出格式
输入格式
第一行两个整数 $n,t$ ,表示飞机数和时刻数。
接下来 $n$ 行,每行 $11$ 个整数和一个长为 $t$ 字符串,按编号顺序描述无人机。
这 $11$ 个整数分别为 $x,y,z,h,f,atk,def,mat,mdf,hp,fix$ ,其中 $hp$ 为初始生命值。
字符串的每一个字符均为大写字母,依次表示这 $t$ 个时刻的操作。
输出格式
$n$ 行,每行 $4$ 个整数 $x,y,z,hp$ 。
如果这架飞机没有坠毁,则输出坐标和最终的生命值。
否则,输出坠毁前的坐标, $hp$ 输出 $0$ 。
输入输出样例
输入样例 #1
4 7
-1 -1 0 2 1 1 0 0 0 5 0 RAAAAAA
51 0 1 1 4 0 0 1 0 5 0 UMMMMMM
-2 0 0 2 0 0 0 0 0 5 1 FFFNNNN
53 0 0 2 4 0 0 0 0 5 1 FFFNNNN
输出样例 #1
6 0 0 1
45 0 0 0
5 0 0 4
46 0 0 7
输入样例 #2
7 1
0 0 0 0 0 2 0 0 0 1 0 A
1 0 0 0 0 4 0 0 0 3 0 A
1 0 0 0 0 1 1 1 1 4 0 N
1 0 -1 0 0 0 0 0 0 2 0 N
0 1 0 0 0 0 0 3 0 3 0 M
0 1 -1 0 0 0 0 0 1 3 0 N
0 1 -1 0 0 0 0 0 2 3 0 N
输出样例 #2
0 0 -1 1
1 0 -1 3
1 0 -1 4
1 0 -2 2
0 1 -1 3
0 1 -2 1
0 1 -2 2
说明
两架飞机移动并改变朝向后互相面对,随后它们分别向对面疯狂开火,最终 1 号飞机率先击落 2 号飞机,因为 2 号飞机已经坠毁,所以 1 号飞机不会被击落。
而它们身后分别跟着两架飞机, 2 号飞机使用激光,所以 3 号飞机也会受到伤害, 1 号飞机使用子弹,所以 4 号飞机不会受到伤害,直到 2 号飞机坠毁后, 1 号飞机发出最后一颗子弹,对 4 号飞机造成了一点伤害。同时两架飞机前三次操作分别进行了三次修复, $hp$ 增加了 $3$ 。
测试时,每个 Subtask 包括 3 个测试点,全部通过才能得到该 Subtask 的分数
------------
样例 2 解释:<https://www.luogu.com.cn/discuss/582252>
---
数据范围:
$1\leq n,t\leq 100$
输入的所有数字大小在合理范围内,且绝对值均不大于 $100$ 。
其中 $atk,def,mat,mdf,fix$ 为非负整数。
$hp$ 为正整数。
$x,y,z$ 为整数。
$h$ 为 $0,1,2,3,4$ 中的一个。
$f$ 为 $0,1,2,3,4,5,6,7$ 中的一个。
字符串仅包含 $NFLRUDAM$ $8$ 种字符。
另外,对于前 3 个 subtask ,保证任何时刻飞机的 z 坐标为
$0$ 。
Subtask | 分值 | 出现的操作
:-: | :-: | :-:
1| 12| N
2| 14| NF
3| 15| NFLR
4| 17| NFLRUD
5| 19| NFLRUDM
6| 23| NFLRUDMA