U440592 Minecraft-herobrine之战

题目背景

神不会流血$!$

题目描述

给出一个 $a \times a$ 正方型矩阵,$0$ 代表空地,$1$ 代表主角,$n$ 表示这里有一个生命值为 $n$ 的 herobrine 分身;herobrine 分身生命值在一半及一半以下时会对周围 $3 \times 3$ 范围造成 $2$ 点伤害,否则只会对一格内的主角造成 $1$ 点伤害;主角有 $3$ 点生命值,他会对当前格的 herobrine 分身造成 $1$ 点伤害,他还可以使用两个技能: - 对刚刚行进方向 $5$ 格 $3 \times 3$ 范围内敌人造成 $2$ 点伤害,并移动到 $5$ 格外(不能出图)。 - 对当前格 $3 \times 3$ 范围内敌人造成 $3$ 点伤害。 两个技能均需一次普攻蓄力,蓄力后两个技能均可使用一次,主角只可以前后左右移动,herobrine 分身不能移动。 但战场上局势千变万化,在主角使用一次技能时,若敌人未全部消灭, herobrine 本体会考虑两种选择: - 选择 $\texttt{A}$:给坐标 $(x,y)$ 的 herobrine 分身增加 $z$ 生命值或在坐标 $(x,y)$ 创建一个生命值为 $z$ 的 herobrine 分身。 - 选择 $\texttt{B}$:让主角降低 $1$ 点生命值。 请输出最少步数攻击路线,前后左右移动用 $\texttt{W}$、$\texttt{S}$、$\texttt{A}$、$\texttt{D}$ 表示,技能用数字$\texttt{1}$、$\texttt{2}$ 表示。 若无解,输出 `error`。

输入格式

第一行为一个整数 $a$,表示地图大小。 接下来有 $a$ 行,每行输入 $a$ 个整数(之间用一个空格分隔),代表地图。 第 $2+a$ 行,先读入一个字符: - 若字符为 `A`,输入三个整数 $x$、$y$、$z$,表示给坐标 $(x,y)$ 的 herobrine 分身增加 $z$ 生命值或在坐标 $(x,y)$ 创建一个生命值为 $z$ 的 herobrine 分身。 - 若字符为 `B`,接下来无需输入,代表让主角降低 $1$ 点生命值。

输出格式

一行,主角的移动及技能释放, 若该样例无解,输出 `error`。

说明/提示

对于$100\%$的数据,有$2$ ≤ $n$ ≤ $4$ , $1$ ≤ $a$ , $x$ , $y$ ≤ $10$ 。