比赛 2025.9.13 评测结果 AAAAAAAAAAAA
题目名称 Transforming Pairs 最终得分 100
用户昵称 20120223 运行时间 0.177 s
代码语言 C++ 内存使用 3.65 MiB
提交时间 2025-09-13 09:59:26
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sz(ll a, ll b, ll c, ll d) {
    if (a==c&&b==d)return 0;
    if (a>c||b>d)return -1;
    ll steps=0;
    while (c!= a||d!=b){
        if (c<a||d<b)return -1;
        if (c==d)return -1;
        if (c>d) {
            if (d==b) {
                if((c-a)%d != 0)return -1;
                steps+=(c-a)/d;
                break;
            }
            ll k=(c-a)/d;
            if(k==0)k=1;
            steps+=k;
            c-=k*d;
        }else{
            if(c==a){
                if((d-b)%c!=0)return -1;
                steps+=(d-b)/c;
                break;
            }
            ll k=(d-b)/c;
            if (k==0)k =1;
            steps+=k;
            d-=k*c;
        }
    }
    return steps;
}
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;
        ll ans = sz(a, b, c, d);
        cout << ans << endl;
    }
    return 0;
}