有 $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;
}
最后修改:2023 年 05 月 19 日
如果觉得我的文章对你有用,请随意赞赏