传送门游戏
题号:NC214504
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小明玩游戏上瘾了,对游戏中的传送门非常感兴趣。他在一个M*N的棋盘中设置了多个传送门,只要已走到传送门,就会一步直接跳转到其他位置。其他位置智能按正常的上下左右四方向行走,请帮他编写一个程序,判断从起点到终点最多需要几步。如果不能到达,则输出“NO”。

输入描述:

只有一组测试用例,每个测试用例第一行为数字M,N,K中间用空格分隔,M表示棋盘的行数,N表示棋盘的列数,K表示传送门的个数。第二行为数字SX,SY,EX,EY,中间用空格分隔,表示起点坐标和终点坐标。以下为K行,每行四个数字R1,C1,R2,C2,中间用空格分隔。表示传送门的起始位置和跳传目标位置,传送门是单向的,传送的过程也算一步。

输出描述:

每个测试用例输出一行,为最小的步数,如果不能到达,则输出“NO”。
示例1

输入

复制
3 3 1
3 3 1 3
2 3 1 1

输出

复制
4