Description
在数轴上有两只青蛙,它们都朝着正方向跳跃。 初始时,第一只青蛙在 x1的位置,每秒向前跳 y1 个单位,第二只青蛙在 x2 的位置,每秒向前跳 y2 个单位。试问:是否存在一个非负整数时刻使得两只青蛙停在同一个位置。
Input
输入第一行,一个数 n,表示一组数据中有 n 个询问接下来 n 行,每行 4 个整数 x1, x2, y1, y2,表示一个询问
Output
对于每个询问,如果存在两只青蛙停在同一个位置的时刻,输出 YES,否则输出 NO
Sample Input 1
2
0 4 3 2
0 4 2 3
Sample Output 1
YES
NO
样例解释
询问 1:在时刻 4,两只青蛙都停在了 x=12 的位置上
询问 2:第二只青蛙的起点在第一只青蛙右边,且每次都比第一只青蛙跳的多,它们一定不会相遇
数据范围与约定
对于 30% 的数据, 0 ≤ x1, x2 ≤ 10, 1 ≤ y1, y2 ≤ 10
对于 50% 的数据, 0 ≤ x1, x2 ≤ 100, 1 ≤ y1, y2 ≤ 100
对于 70% 的数据, 0 ≤ x1, x2 ≤ 10^6, 1 ≤ y1, y2 ≤ 10^6
对于 100% 的数据, 0 ≤ x1, x2 ≤ 10^9, 1 ≤ y1, y2 ≤ 10^9,1 ≤n ≤10
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,aty,b,bty;
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>aty>>b>>bty;
if(a<b && aty<=bty) {
cout<<"NO"<<endl;
continue;
}
if(a==b) {
cout<<"YES"<<endl;
continue;
}
while(a>=b || b>=a){
a+=aty;
b+=bty;
}
if(a==b) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}