2932: 迷宫
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
给定一个 N*M 的迷宫和一个机器人, 迷宫里有一些障碍物, 机器人无法通过。 现在机器人要从起点走到终点, 每个时刻可以执行三种操作: 前进, 左转, 右转。 前进无需费用,但左转和右转则需要不同的费用。 现在问你,机器人从起点走到终点的最小费用是多少? 机器人的起始方向可以由你指定。注意这是一个四连通的迷宫,即每个格子 只与其上下左右的格子相邻,与对角不相邻。起始方向可以选这四种方向的其中 一种。
输入
输入文件第一行为两个整数 lcost(1≤lcost≤100)和 rcost(1≤rcost≤ 100),分别表示机器人左转一次的费用和右转一次的费用。 第二行是六个整数:r 表示迷宫的行数;c 表示迷宫的列数;sx (1≤sx≤r) 表示起点的行坐标;sy (1≤sy≤c)表示起点的列坐标;ex (1≤ex≤r)表示终点 的行坐标;ey (1≤ey≤c)表示终点的列坐标。 接下来是 r 行,每行 c 个字符,表示迷宫的地形。迷宫只有两种地形, ‘*’ 表示障碍物,机器人不能走在上面; ‘.’表示空地,机器人可以站在上面。左上 角那格的坐标是(1,1)。 注意:机器人不能走出迷宫,也不能穿过障碍物。输入保证合法,起点和终 点肯定是空地。
输出
输出文件一行一个整数,表示机器人从起点走到终点所需的转弯费用。如果 没有路可达,输出“-1” 。
样例输入 复制
1 2
1 4 1 1 1 4
....
样例输出 复制
0
//机器人不用转弯就可以从起点走到终点, 只要一开始选择向右走然后直走就行了。
提示
in
1 2
1 4 1 1 1 4
..*.
out
-1
//说明:这个样例机器人无路可走。