#2931. [Poi1999]溜冰场问题

[Poi1999]溜冰场问题

题目描述

一场溜冰比赛在 Byteland 最大的溜冰场举行。溜冰场是一个大小为 104×10410^4\times 10^4 的正方形。一个选手在裁判选定的起点开始滑冰,他的任务是滑到由裁判选定的终点。起点和终点不相同。

我们定义一个坐标系统来描述滑冰场物体的位置。滑冰场是一个顶点分别为 (0,0)(0,0)(104,0)(10^4,0)(104,104)(10^4,10^4)(0,104)(0,10^4) 的正方形。

一个选手在滑冰场的平行赛道上滑行。在滑冰场上设置了一些障碍物。每一个障碍物是一个棱柱,它的底部是边与滑冰场的各边平行的多边形。底部的每两个相邻的边总是垂直的。障碍物没有公共点。每一个滑道完结于一个点,在一个选手首先碰到一个障碍物的垂直于滑道方向一面。换一句话说,仅当一个选手撞到墙或者到了终点才能停下来。摔到溜冰场外则取消参赛资格。选手可以沿着障碍物的墙滑行。

pic1

请编写一个程序,判断一个选手依照所给的规则是否可以到达终点,如果可以到达,那么他需要滑行的最少数目是多少?

输入格式

首行有两个被单空格号隔开的整数 zxz_xzyz_y,表示起点的坐标。

第二行有两个被单空格号分开的整数 txt_xtyt_y 表示终点的坐标。

第三行包含了一个整数 ss。这是障碍物的数目。下面的几行是对障碍物的描述。每一个障碍物的描述由一行包括一个等于障碍物的墙数(底边)的正整数 rr 开始。接下来的 rr 行的每一行有两个由单空格号隔开的整数 xxyy。那是障碍物底部顶点的坐标,按照顺时针顺序给出。(当按照这个方向绕障碍物一圈,它的内部在左手边)。

障碍物的墙的总数不超过 10410^4

输出格式

如果从起点到终点是不可能的,则输出 NIE,否则写出到达终点的最小滑行数。

40 10
5 40
3
6
0 15
0 60
20 60
20 55
5 55
5 15
12
30 55
30 60
60 60
60 0
0 0
0 5
55 5
55 35
50 35
50 40
55 40
55 55
6
30 25
15 25
15 30
35 30
35 15
30 15
4

数据规模与约定

对于 100%100\% 的数据,0zx,zy,tx,ty1040\le z_x,z_y,t_x,t_y \le 10^41s25001\le s\le 2500

提示

pic1