#GOC80136. 穿越栅栏

穿越栅栏

题目描述

农夫 John 在外面的田野上搭建了一个巨大的用栅栏围成的迷宫.幸运的是,他在迷宫的边界上留出

了两段栅栏作为迷宫的出口.更幸运的是,他所建造的迷宫是一个“完美的”迷宫:即你能从迷宫中

的任意一点找到一条走出迷宫的路.

给定迷宫的宽 W(1<=W<=38)及长 H(1<=H<=100).

2*H+1 行,每行 2*W+1 的字符以下面给出的格式表示一个迷宫.然后计算从迷宫中最“糟糕”的那一

个点走出迷宫所需的步数.(即使从这一点以最优的方式走向最靠近的出口,它仍然需要最多的步

数)当然了,牛们只会水平或垂直地在X或Y 轴上移动,他们从来不走对角线.每移动到一个新的方

格算作一步(包括移出迷宫的那一步)

这是一个 W=5,H=3 的迷宫:

+-+-+-+-+-+

|      |

+-+ +-+ + +

|   | | |

+ +-+-+ + +

| |   |

+-+ +-+-+-+

如上图的例子,栅栏的柱子只出现在奇数行或奇数列.每个迷宫只有两个出口.

PROGRAM NAME: maze1

INPUT FORMAT

第一行: W 和 H(用空格隔开)

第二行至第 2*H+2 行: 每行 2*W+1 个字符表示迷宫

SAMPLE INPUT (file maze1.in)

5 3

+-+-+-+-+-+

|      |

+-+ +-+ + +

|   | | |

+ +-+-+ + +

| |   |

+-+ +-+-+-+

OUTPUT FORMAT

输出一个单独的整数,表示能保证牛从迷宫中任意一点走出迷宫的最小步数.

SAMPLE OUTPUT (file maze1.out)

9