#D0635. [DAY12]GCD 跳跃

[DAY12]GCD 跳跃

题目描述

在一个无限大的二维平面网格上,你身处一个名为“最大公约数之地”的奇特领域。

你的初始位置在坐标 (Sx,Sy)(S_x, S_y)。在这里,移动的方式很特别。每一步,你都可以从当前位置 (x,y)(x, y) 选择以下两种移动方式之一:

  1. 向右跳跃:移动到新位置 (x+gcd(Sx,Sy),y)(x + \gcd(S_x, S_y), y)
  2. 向上跳跃:移动到新位置 (x,y+gcd(Sx,Sy))(x, y + \gcd(S_x, S_y))

其中 gcd(a,b)\gcd(a, b) 代表正整数 aabb 的最大公约数。

现在,给定一个终点坐标 (Tx,Ty)(T_x, T_y),请问你是否有可能通过任意次移动,从起点 (Sx,Sy)(S_x, S_y) 到达终点 (Tx,Ty)(T_x, T_y)

输入格式

第一行包含一个整数 TT,代表测试数据的组数。

接下来 TT 行,每行包含四个正整数 Sx,Sy,Tx,TyS_x, S_y, T_x, T_y,分别代表起点的 x,yx, y 坐标和终点的 x,yx, y 坐标。

输出格式

对于每组测试数据,输出一行。如果可以从起点到达终点,输出 YES;否则,输出 NO

3
6 10 12 10
7 5 8 5
6 9 10 15
YES
YES
NO

数据规模与约定

对于 100%100\% 的数据,满足:1T10001 \le T \le 10001SxTx10181 \le S_x \le T_x \le 10^{18}1SyTy10181 \le S_y \le T_y \le 10^{18}

  • 子任务 1(30 分):保证 Tx,Ty1000T_x,T_y\le 1000
  • 子任务 2(30 分):保证 Sy=TyS_y=T_y
  • 子任务 3(40 分):没有特殊限制。