题目在这里呀!
那么开始切水题了?(划掉)
题意
题目很短了吧?
题解
表面上有八个向量,但它们合并一下就只剩下没几种情况了qwq
四种情况
1、x0+2a or y0+2b
2、x0+2b or y0+2a
3、x0+a,y0+b
4、x0+b,y0+a
然后如果3、4两种取两次又会回到1、2状态,所以下面两种暴力枚举取或不取。上面是可以用两个同余方程做滴,分别是x一个y一个/托腮。判断是否合法只要判断x’能否被gcd(2a,2b)整除,y’能否被gcd(2a,2b)整除即可。
//Suplex
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#define ll long long
using namespace std;
int T;
ll a,b,x,y,d;
inline ll gcd(ll a,ll b)
{
if(!b) return a;
return gcd(b,a % b);
}
inline bool check(ll a,ll b)
{
if(a % d==0 && b % d==0) return true;
return false;
}
int main()
{
scanf("%d",&T);
while(T--){
scanf("%lld%lld%lld%lld",&a,&b,&x,&y);
d=gcd(a*2,b*2);
if(check(x,y) || check(x-a,y-b) || check(x-b,y-a) || check(x-a-b,y-a-b)) puts("Y");
else puts("N");
}
return 0;
}