编程题
### 问题描述 伦太郎终于走进了教室,他到处张望,寻找好基友桥田君的位置。桥田君也是如此,只不过他们两人分别位于教室的两端。现在他们想在教室里快速地找到两个同排且相邻的座位,这样他们就能愉快地一起听讲座了! 教室里座位的布局呈长方形,有 $N$ 排 $M$ 列,总共 $N \times M$ 个座位,约定 $(x,y)$ 表示第 $x$ 行,第 $y$ 列的座位。一开始,伦太郎在 $(1,1)$,桥田君在 $(N,M)$。对于每一个座位,我们用 $0$ 代表这个座位上没有学生,$1$ 代表这个座位上有学生。此外,我们规定两人在寻找座位的过程中,每一步只能朝上下左右四个方向移动到与自身相邻的一个位置且其他同学此时静止不动。当然他们不能走到有学生坐的座位上,但因为他俩是好基友的关系,他们在寻找座位的过程中并不会互相妨碍。 请问:他们俩是否能找到这样两个同排且相邻的座位,且各自花费的步数总和最小?如果可以,输出花费的最小步数总和;反之输出 $-1$。 ### 输入格式 第一行两个正整数 $N,M$,表示教室有 $N$ 排 $M$ 列个座位。 接下来 $N$ 行,每行 $M$ 个整数 $a_{ij}$,代表第 $i$ 排第 $j$ 列的座位是否有学生。 ### 输出格式 输出共 $1$ 行,若有解,输出一个整数表示伦太郎和桥田君花费的最小步数总和;否则输出 $-1$。 ### 样例输入 ```text 3 3 1 0 0 1 1 0 0 0 1 ``` ### 样例输出 ```text 3 ``` ### 说明 样例中,位于 $(N,M)$ 的桥田君可以走三步到 $(1,2)$ 处,也可以走两步到 $(1,3)$ 处,然后让伦太郎走一步到 $(1,2)$ 的位置上。两种方案花费的步数总和都是 $3$,也都是最优解。 ### 评测数据规模 对于所有评测数据,$2 \leq N,M \leq 50$,$0 \leq a_{ij} \leq 1$。
查看答案
赣ICP备20007335号-2