站外题求助
  • 板块灌水区
  • 楼主int4096
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/10/15 19:57
  • 上次更新2023/11/4 03:44:23
查看原帖
站外题求助
542452
int4096楼主2021/10/15 19:57
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;
}
2021/10/15 19:57
加载中...