#P1441. 【华为】2024-9-13-第三题-安全移动

【华为】2024-9-13-第三题-安全移动

题目描述

薯条哥正值班,突然发现他所在的屋子进水了,水面一直上涨,考虑到可能有电器暴露在水中,薯条哥想通过尚未被水淹没的箱子达到电源处,关闭电源。假设电源和薯条哥所处的位置都比较安全,不会被水淹没。

已知屋子为矩形,可划分为大小相当的小方格,薯条哥的位置,电源,箱子都正好在小方格的正中间,覆盖整个方格;薯条哥每单位时间可以从一个小方格移动到相邻的处在同一行或者同一列的另一小方格。

为了安全薯条哥只能移动到没有被上涨的水面淹没的小方格,箱子的高度不一,所在方格被水淹没的时间取决于方格内箱子的高度,水面每单位时间上涨11,如果此时箱子的高度小于或者等于水面的高度,则被淹没。

请帮薯条哥设计一条路线到达电源处,如果没有这样的路线,则薯条哥应该待在原地。

输入描述

第一行输入一个整数h(0h10)h(0\le h\le 10)开始时水的深度

第二行输入两个整数n,m(1n,m20)n,m(1\le n,m\le 20),分别表示屋子的长和宽。

接下来nn行,每行输入mm个整数或者字符,用来描述屋子内小方格的布局。其中用非00数字代表箱子的高度,00代表没有箱子,ss代表薯条哥的位置,tt代表电源位置

输出描述

第一行输出一个整数mm , 代表路径长度

接下来mm 行,每行一个坐标(xi,yi)(x_i,y_i) 代表第ii步的位置

样例1

输入

0
4 4
s 1 3 5
2 3 2 4
2 4 4 5
3 5 5 t

输出

1
0 0

样例解释

无法安全到达电源位置,只能呆在原地ss所在位置

样例2

输入

0
4 4
s 1 2 5
2 3 2 4
2 4 4 5
3 5 7 t

输出

7
0 0
1 0
1 1
2 1
3 1
3 2
3 3

样例解释

输入:第一行表示开始水面深度为00,第二行表示屋子为4×44\times 4的方格;如果方格坐标从11开始,则薯条哥在第11行第11列,电源在第44行第44列;

输出:输出了从薯条哥所在位置ss到电源所在位置tt以及路径上的箱子高度

注意:如果有多个方案,输出任意一个合法的移动方案即可