有 $T$ 组询问,每组通过三种方式凑出 $z$ 升水,若可以则输出 YES
,不能则输出 NO
。
根据样例的模拟可以发现:若 $z$ 是 $x$ 和 $y$ 的最大公约数的倍数且 $x$ 和 $y$ 中间有一个 $\ge z$,就可以凑出 $z$ 升水(扩展欧几里得算法)。
#include<bits/stdc++.h>
using namespace std;
int T,x,y,z;
int main(){
cin>>T;
while(T--){//T组询问
cin>>x>>y>>z;
if(z%__gcd(x,y)==0 && (x>=z || y>=z)) cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}