SP13388 题解
作者:互联网
有 \(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;
}
标签:输出,升水,int,题解,询问,凑出,cin,SP13388 来源: https://www.cnblogs.com/lzx1609/p/sp13388.html