比赛 2025.9.13 评测结果 AAAAAAAAAAAA
题目名称 Transforming Pairs 最终得分 100
用户昵称 对立猫猫对立 运行时间 0.174 s
代码语言 C++ 内存使用 3.71 MiB
提交时间 2025-09-13 10:33:45
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
	freopen("Transforming.in", "r", stdin);
	freopen("Transforming.out", "w", stdout);
	int T;
	cin >> T;
	while (T--) {
		ll a, b, c, d;
		cin >> a >> b >> c >> d;
		if (a == c && b == d) {
			cout << 0 << endl;
			continue;
		}
		if (c < a || d < b) {
			cout << -1 << endl;
			continue;
		}
		ll ans = 0;
		bool flag = true;
		while (c != a || d != b) {
			if (c < a || d < b) {
				flag = false;
				break;
			}
			if (c > d) {
				if (d == b) {
					if ((c - a) % d != 0) {
						flag = false;
						break;
					}
					ans += (c - a) / d;
					c = a;
				} else {
					ans += c / d;
					c %= d;
				}
			} else {
				if (c == a) {
					if ((d - b) % c != 0) {
						flag = false;
						break;
					}
					ans += (d - b) / c;
					d = b;
				} else {
					ans += d / c;
					d %= c;
				}
			}
		}
		if (flag) {
			cout << ans << endl;
		} else {
			cout << -1 << endl;
		}
	}
	return 0;
}