#P1003. [BFS]云辰的致命步程

[BFS]云辰的致命步程

背景故事

伦敦时间凌晨 1:00,云辰终于在 OJ 上骂完学生。他盯着屏幕发呆,脑子里只有一个问题:

“我要不要回公寓睡觉,还是直接倒在实验室地板上算了?”

因为他压根不知道从教学楼走回公寓最短需要多久 —— 而且他还担心半路猝死。

题目描述

教学楼在地图的 左上角 (1,1)(1,1),公寓在 右下角 (n,m)(n,m)

云辰需要从左上角走到右下角。上下左右都可以走。

首先,请你帮他规划出一条最短路线。并输出最短路径的长度,如果无路可走,输出-1。

最后,如果最短路径 ×3\times 3 的时间超过了 3030 分钟,或者无路可走,那就直接输出一句“ STOP ”劝退云辰。 否则输出 “ OKAY ”(告诉他走就行)。

由于云辰非常的懒,因此出教学楼也需要算作 11 步。

输入格式

第一行输入两个整数 nnmm,代表地图的行和列。

接下来 nn 行,每行 mm 个数字(aia_i

· 00 代表这里很畅通,可以通行。

· 11 代表这里是施工区域,不允许经过。

起点永远是 (1,1)(1,1) 教学楼,终点永远是 (n,m)(n,m) 公寓。

输出格式

输出共两行:

第一行输出最短路径 minsmins,如果无路可走则输出 1-1

第二行,如果 (mins×3)>30(mins \times 3) > 30 或者无路可走,输出 STOP,否则输出 OKAY 。