4964:机器虫洞

文件提交:无需freopen 内存限制:256 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:0 解决:0

题目描述

# 题目描述 一觉醒来,小 Z 发现自己的机器人不见了!经过一顿花里胡哨的操作,小 Z 找到了机器人在哪——机器人被传送到了一个二维空间! 小 Z 发现这个二维空间可以看作是一个 $n * m$ 的地图,机器人一开始处于坐标 $(x_1,y_1)$ 处,而只要小 Z 到达 $(x_2,y_2)$ 坐标处,小 Z 就可以通过技术手段把机器人救回来。 但是在小 Z 尝试向机器人下达移动命令时才发现,这个二维空间居然是由 **虫洞** 组成的。每个坐标 $(i,j)$ 都有一个虫洞,可以用 $a_{i,j}$ 表述虫洞编号。而经过不断的测试,小 Z 发现有些虫洞之间是互相连通的,小 Z 将这些可以互相连通的虫洞用同一个编号来表示,也就是说小 Z 只要进入某个编号为 $x$ 的虫洞,它可以从任意编号为 $x$ 虫洞的坐标离开虫洞。 当然,小 Z 发现机器人的动力是足够脱离虫洞的引力的,它也可以耗费电量来让自己在相邻的坐标位置之间直接进行移动,每次移动到 **上下左右** 四个方向的位置,需要花费一格电量。但是由于虫洞存在吸引力,小 Z 发现每次进入虫洞都会导致机器人受损,经过测量,机器人最多还能进入 $k$ 次虫洞,之后如果再次进入虫洞就会导致机器人损坏。 为了设计一套救援方案,顺便还能收集一下二维空间的信息。小 Z 想知道,在机器人不损坏的情况下,机器人移动到 $(x2,y2)$ 坐标处最少需要花费多少电量? ## 输入格式 从 `hole.in` 文件读入数据。 输入第一行是两个整数 $n,m,k$,含义如题。 输入第二行包含四个整数 $x_1,y_1,x_2,y_2$。 接下来 $n$ 行,每行 $m$ 个数字,分别表示每个坐标对应的虫洞编号。 ## 输出格式 输出到 `hole.out` 文件。 输出一个整数,表示机器人最少花费的电量。 ## 样例 ### 输入样例 ``` 5 5 2 1 1 5 5 1 1 2 2 2 2 3 3 3 3 4 4 5 5 6 7 4 7 8 8 8 9 9 9 9 ``` ### 输出样例 ``` 3 ``` ## 说明/提示 ### 样例解释 其中一种方案为: 1. $(1,1) \rightarrow (2,1)$,花费 $1$ 电量 2. $(2,1) \rightarrow (3,1)$,花费 $1$ 电量 3. $(3,1) \rightarrow (4,2)$,使用虫洞移动 4. $(4,2) \rightarrow (5,2)$,花费 $1$ 电量 5. $(5,2) \rightarrow (5,5)$,使用虫洞移动 最小花费为 $3$ 电量 ### 数据范围 | 数据点编号 | $n,m$ | $k$ | 虫洞编号 | | :--------: | :-------------------: | :-------------: | :---------: | | $1$ | $1 \le n, m \le 10$ | $k = 0$ | $[1, 100]$ | | $2$ | $1 \le n, m \le 10$ | $k = 1$ | $[1, 100]$ | | $3 \sim 5$ | $1 \le n, m \le 10$ | $k = 2$ | $[1, 100]$ | | $6 \sim 9$ | $1 \le n, m \le 1000$ | $k = 2$ | $[1, 1000]$ | | $10 \sim 20$| $1 \le n, m \le 1000$ | $1 \le k \le 5$ | $[1, 1000]$ |

输入

输出

提示