原题链接: AcWing

题目描述:

在一个一维数轴的 x 位置处站着甲,y 位置处站着乙,其中 x

输入格式

第一行包含整数 T,表示共有 T 组测试数据。 每组数据占一行,包含四个整数 x,y,a,b。

输出格式

如果答案为整数秒,则输出答案,否则输出 −1。

数据范围

前 3 个测试点满足 1 ≤ T ≤ 10。 所有测试点满足 1 ≤ T ≤ 1000,0 ≤ x < y ≤ 109,1 ≤ a, b ≤ 109。

输入样例:

5
0 10 2 3
0 10 3 3
900000000 1000000000 1 9999999
1 2 1 1
1 3 1 1

输出样例:

2
-1
10
-1
1

解题思路:

这道题是一个推公式题,利用小学数学就可以推,用 x 和 y 的 路程差 除以 速度和 就可以得到结果,然后按照题意用if求余判断是否是整数秒,是就输出,不是则输出 -1。

代码:

#include <iostream>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int x,y,a,b;
        cin>>x>>y>>a>>b;
        if ((y - x) % (a + b) == 0) //得数为整
        {
            cout << (y - x) / (a + b) << endl;
        }
        else
        {
            cout<< -1 <<endl;
        }
    }
    return 0;
}