解法:
显然a可以为a+ik(i为整数),b可以为b+jk(j为整数)。
若a+ik=b+jk。假定i>=j,那么a<=b。可以得到b-a=(i-j)k
我是傻逼,不放代码了
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#define endl '\n'
void solve() {
long long a, b, k;
cin >> a >> b >> k;
long long mx = max(a, b);
long long mn = min(a, b);
long long plus = mx - mn;
if (plus == 0) {
cout << "YES" << endl;
return;
}
else {
if (k > plus) {
cout << "NO" << endl;
return;
}
else if (k < plus) {
if (plus % k == 0) {
cout << "YES" << endl;
return;
}
else {
cout << "NO" << endl;
return;
}
}
else {
cout << "YES" << endl;
}
}
return;
}
int main()
{
int t; cin >> t;
while (t--) {
solve();
}//a+nk,b+nk
return 0;
}
万能的%!!!接受我的膜拜