1680: 渡河问题

内存限制:128 MB 时间限制:5.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

  在 S 星系中,有一个体积非常非常大的星球,在它上面有一块陆地,陆地的面积非常非常大,以至于可以把它看成一个平面。在这块陆地上,只存在两条河流。并且这两条河流完全穿过这片陆地。这两条河流都是直线,并且不平行,且交点总是在陆地上。   为了方便起见,我们把陆地抽象成了直角坐标系。选取一个点作为圆点,于是河流就可以用直线方程 y = a * x + b 表示。并且河流不平行于坐标轴。   我们沿着原点以类螺旋状对陆地上的整数坐标点进行顺序编号(编号从 0 开始,对在河流上的点不进行编号)。如下图(如果原点在河流上,则沿着下一个点作为第一个点进行顺序编号,依此类推):
  蓝线表示类螺旋线,其中两条河流的直线方程分别为y=x+2,y=-x。蓝色数字表示类螺旋线上的编号,其余数字为坐标轴上的数。   从原点开始,螺旋线上的整数坐标点依次为 (0, 0), (-1, 0), (-1, -1), (0, 1), (1, 1), (1, 0)……由于 (0, 0) 在直线上,故编号为 0 的点为后面 (-1, 0),同理 (-1, -1) 也在直线上,故编号为 1 的点为 (0, 1)……   由上图可以知道从编号为 0 的点到编号为 9 的点需要经过河流,从编号为 0 的点到编号为 5 的点不需要经过河流。   现在我们想知道,从编号为 i 的点到编号为 j 的点是否不需要渡河?

输入

  第一行包括四个整数 a1 b1 a2 b2(-100 < a1, a2, b1, b2 < 100,且 a1 a2 不为 0)分别表示河流的直线方程 y = a1 * x + b1, y = a2 * x + b2。   第二行为一个整数 n(n < 100000),表示 n 个询问。   以下 n 行,每行为两个整数 a b(a, b < 100000),分别表示编号为 a 的点和编号为 b 的点。

输出

  对于每组 a、b 两点,输出是否不需要经过河流就能互相到达。如果不需要经过河流,则输出“YES”,否则输出“NO”(不含引号)。

样例输入 复制

-1 0 1 2
8
0 1
0 2
5 9
5 7
5 8
7 8
7 9
2 9

样例输出 复制

NO
NO
NO
NO
NO
NO
NO
YES