Problem4254--游戏

4254: 游戏

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

小明在玩一个电脑游戏,游戏在一个 $n×m$ 的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第 $n$ 行第 $m$ 列。
方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第 $n$ 行第 $m$ 列,则小明过关。第一行第一列和第 $n$ 行第 $m$ 列永远都是安全的。
每个单位时间,小明的角色必须向上下左右四个方向相邻的方格中的一个移动一格。
经过很多次尝试,小明掌握了方格图的安全和危险的规律:每一个方格出现危险的时间一定是连续的。并且,小明还掌握了每个方格在哪段时间是危险的。
现在,小明想知道,自己最快经过几个时间单位可以达到第 $n$ 行第 $m$ 列过关。

Input

第一行包含三个整数 $n, m\ (1 \leq n,m \leq 100),\ t\ (0 \leq t \leq 99)$,用一个空格分隔,表示方格图的行数 $n$、列数 $m$,以及方格图中有危险的方格数量。
接下来 $t$ 行,每行 $4$ 个整数 $r\ (1 \leq r \leq n), c\ (1 \leq c \leq m),\ a, b\ (0 \leq a,b \leq 100)$,表示第 $r$ 行第 $c$ 列的方格在第 $a$ 个时刻到第 $b$ 个时刻之间是危险的,包括 $a$ 和 $b$。
游戏开始时的时刻为 $0$。输入数据保证 $r$ 和 $c$ 不同时为 $1$,而且当 $r$ 为 $n$ 时 $c$ 不为 $m$。一个方格只有一段时间是危险的(或者说不会出现两行拥有相同的 $r$ 和 $c$)。

Output

输出一个整数,表示小明最快经过几个时间单位可以过关。输入数据保证小明一定可以过关。

Sample 1 Input

3 3 3
2 1 1 1
1 3 2 10
2 2 2 10

Sample 1 Output

6
第 $2$ 行第 $1$ 列时刻 $1$ 是危险的,因此第一步必须走到第 $1$ 行第 $2$ 列。
第二步可以走到第 $1$ 行第 $1$ 列,第三步走到第 $2$ 行第 $1$ 列,后面经过第 $3$ 行第 $1$ 列、第 $3$ 行第 $2$ 列到达第 $3$ 行第 $3$ 列。

Source/Category

多维BFS