除了枚举什么思路没有
看了题解
也不太懂
只能贴代码了
代码如下
#include<iostream>
#include<cstdio>
#include<cctype>
using namespace std;
#define in = read();
typedef long long ll;
typedef unsigned int ui;
ll n , a , b , x , y;
ll num;
inline ll read(){
ll num = 0 , f = 1; char ch = getchar();
while(!isdigit(ch)){
if(ch == '-') f = -1;
ch = getchar();
}
while(isdigit(ch)){
num = num*10 + ch - '0';
ch = getchar();
}
return num*f;
}
ll gcd(ll a , ll b){
return !b ? a : gcd(b , a%b);
}
inline bool check(ll a , ll b){
return (a%num == 0) && (b%num == 0);
}
int main(){
n in;
while(n --){
a in; b in; x in; y in;
num = gcd(a , b)<<1;
x %= num; y %= num; a %= num; b %= num;
if(check(x , y) || check(x + a , y + b) || check(x + b , y + a) || check(x + a + b , y + a + b))
printf("Y\n");
else printf("N\n");
}
}
//COYG