XTUOJ-1058カエル王子の一種の実現


Description


王子は巫女に呪われてカエルになった.500年後のある日、カエルの王子は仙女に出会った.仙女は彼に簡単なテストに合格すれば、呪いを解くことができると言った.テストはこのようにして、仙女はカエルの王子様に1本の直線の上でジャンプするように要求した(カエルの王子様は最初は座標が0の場所に立っていた)が、彼女が与えた2つの長さに従ってジャンプするしかなく(この2つの長さの王子様がジャンプできると仮定)、前または後ろにジャンプすることができ、指定された場所に達することができれば、テストに合格する.仙女が与えた方法はいろいろあるが、指定された場所に達することはできないものもある.かわいそうなカエルの王子を助けて、テストを完成させるジャンプ方法を探してください.

入力

各サンプルは1行を占め、3つの整数であり、1つのunsigned intで表すことができる.最初の2つはジャンプ可能な長さを表し、最後の1つは到達する必要がある場所の座標を表す.3つの数が0の場合は、入力が終了します.

しゅつりょく

行ごとにサンプルの結果が出力され、指定された場所に到達できればYesが出力され、そうでなければNoが出力されます.

Sample Input

2 5 9
3 7 2
4 8 3
0 0 0

Sample Output

Yes
Yes
No

考え方:
カエルは前または後ろにジャンプすることができ、整数ステップをジャンプしなければならないため、この問題は実際に二元一次方程式ax+by=cに整数解があるかどうかを判断する問題に変換することができる.
判断の仕方は簡単です:(a,b)の最大公約数がcを除去できれば、方程式には整数解があります!さもないとありません.この点が分かれば、実装方法は簡単です.コードは以下の通りです.
#include
using  namespace std;

int gcd(int a,int b){
    return b==0 ? a : gcd(b,a%b);
}

int main() {
    int a,b,c;
    while(cin>>a>>b>>c,a!=0 || b!=0 || c!=0){
        if(a==0 && b==0)
            cout<