问题1434--冰壶

1434: 冰壶

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

MM -21星球上的冰壶比赛规则如下:比赛的目标是将一个冰壶从起始位置移动到终点 。比赛在画有方格的冰面上进行,每移动 一个算一步,移动 步数少者获胜。
上图是一个比赛场地的样例,样例,场地中一些地方有障碍物,起始位置标记 为 S,目标位置标记 为 G。冰壶每次移动, 必须 撞到障碍物才能停止,待冰壶停止之后运动员才能进行下一次移动 。
移动规则如下:
⚫ 初始状态冰壶在起始位置
⚫ 冰壶只能向上或者向下移动,不能斜向移动
⚫ 冰壶完全停下来,你才能再次移动它
⚫ 每次移动, 冰壶必须满足以下条件之一才能停下 来:
 冰壶撞到障碍物
◆冰壶停在障碍物旁边
◆ 障碍物消失
冰壶 出界
◆ 比赛结束, 失败
冰壶到达目标状态
◆ 比赛结束,胜利
在比赛规则下,请判断是否可以获胜,如果可以,输出最少操作次数。
例如,在下图所示状态下,需要通过4次移动到达终点, 移动后比赛场地状态 如图 b。

输入

输入包含多组测试样例,样例组数小于100 ,当样例输入两个0时输入结束
每组样例第一行输入场地的宽 w和高 h 2 <= w <=20,1 <= h<= 20。
以下h行每行包含 w个数字,数字,每个 数字含义为:
0 空地
1 障碍
2 起始位置
3 终止位置

输出

对于 每组 数据,输出 从起始点到终点 的最少移动次数,如果无法到达,输出 -1。

样例输入 Copy

2 1
3 2
6 6
1 0 0 2 1 0
1 1 0 0 0 0
0 0 0 0 0 3
0 0 0 0 0 0
1 0 0 0 0 1
0 1 1 1 1 1
6 1
1 1 2 1 1 3
6 1
1 0 2 1 1 3
12 1
2 0 1 1 1 1 1 1 1 1 1 3
13 1
2 0 1 1 1 1 1 1 1 1 1 1 3
0 0

样例输出 Copy

1
4
-1
4
10
-1

提示

冰壶,不能刚扔出去就马上撞到墙,移动次数小于等于10,超过10算失败

来源/分类