P12684 【MX-J15-T4】叉叉学习魔法

题目背景

原题链接:。 --- 小 X 和小 W 走散了。

题目描述

在一个 $n \times m$ 的地图上,有的位置是空地 `.`,有的位置是墙 `#`。小 X 和小 W 分别站在一个空地上,他们走散了,小 X 想去找到小 W。在整个过程中,小 X 都不能走出地图。 定义 $(i,j)$ 表示第 $i$ 行第 $j$ 列。小 X 每次可以从空地 $(i,j)$ 走一步到空地 $(i-1,j)$、$(i+1,j)$、$(i,j-1)$ 或 $(i,j+1)$ 上。 小 X 可以使用若干次魔法。每次使用魔法,小 X 可以从空地 $(i,j)$ 不增加步数地移动到空地 $(i-1,j-1)$、$(i-1,j+1)$、$(i+1,j-1)$ 或 $(i+1,j+1)$ 上。 小 X 想知道,他至少要使用多少次魔法,可以走最少的步数找到小 W。如果小 X 无法找到小 W,请告诉小 X。

输入格式

第一行两个整数 $n,m$。 接下来 $n$ 行,每行 $m$ 个字符,表示地图。其中字符 `X` 和 `W` 分别表示小 X 和小 W 初始站在的空地。

输出格式

一行两个整数,分别表示小 X 走的最少的步数和至少使用魔法的次数。如果小 X 无法找到小 W,输出 `-1 -1`。

说明/提示

**【样例解释 #1】** 从 $X(1,1)$ 使用一次魔法移动到 $(2,2)$,再使用一次魔法移动到 $W(3,3)$。 **【数据范围】** 对于 $100\%$ 的数据,$2 \le n,m \le 5000$,地图中仅出现 `.#XW` 四种字符,其中 `X` 和 `W` 有且仅有一个。 | 测试点编号 | $n,m \le$ | 特殊性质 | | :---------: | :-------: | :------: | | $1$ | $2$ | | | $2\sim 7$ | $10$ | | | $8 \sim 11$ | $1000$ | | | $12\sim 15$ | $5000$ | 没有 `#` | | $16\sim 20$ | $5000$ | |