飞碟与迷宫
测试数据来自 system/3081
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
时间限制:1秒 内存限制:256M
【问题描述】
外星人的飞碟是一个直径为1米的圆盘,不幸降落到地球上的一个迷宫中。这个迷宫由 \(N * M\) 个边长为1米的方格构成,有些格子里有障碍物,有些则没有。如下图是一个 6 行 7 列的迷宫:
迷宫中除一个特殊的格点可以起飞外,其他位置都无法起飞,只能滑行。飞碟只能沿网格线滑行或在格点上转向,无论何时,飞碟中心必须与网格线对齐。飞碟滑行中能执行的指令有:
向前滑行 1 米;
向前滑行 2 米;
向前滑行 3 米;
向左转 90 度;
向右转 90 度。
飞碟每秒执行一条指令,那么请你计算一下飞碟从降落点到起飞点最少需要多少时间?
【输入格式】
第一行为两个正整数 \(N,M\),下面 \(N\) 行 \(M\) 列描述了迷宫格子的情况,其中 0 表示无障碍,1 表示有障碍。最后一行有四个整数和一个大写字母,分别为飞碟降落格点的行列位置,可起飞格点的行列位置和降落时飞碟朝向(东 E,南 S,西 W,北 N),起飞点面向方向是任意的。
【输出格式】
一个整数,表示飞碟最短多少时间可以起飞。如果无法起飞则输出 -1。
【输入输出样例】
Input
6 7
0 0 0 0 0 0 0
0 0 0 0 1 0 0
0 0 1 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 0
1 1 1 6 E
Output
11
【样例解释】
飞碟的降落点在(1,1),且初始方向朝东;迷宫能起飞的点为(1,6)。其中一种用时最少的滑行路线如下图:
【数据说明】
对于 \(100\%\) 的数据 \(1≤N,M≤100\)。
【来源】
Mr.he