比赛 2025.9.13 评测结果 AAAAAAAAAAAA
题目名称 Transforming Pairs 最终得分 100
用户昵称 二乾五 运行时间 0.185 s
代码语言 C++ 内存使用 3.69 MiB
提交时间 2025-09-13 11:16:53
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define cpy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)
#define coutinue(x) cout<<x<<"\n";continue
#define breakout(x) cout<<x<<"\n";pd=0;break

ll t,a,b,c,d;

int main(){
    freopen("Transforming.in" ,"r",stdin );
    freopen("Transforming.out","w",stdout);
    cin>>t;
    foru(i,1,t){
        cin>>a>>b>>c>>d;
        if(a>c||b>d){
            coutinue(-1);
        }
        if(a==c&&b==d){
            coutinue(0);
        }
        ll tmp=0;
        bool pd=1;
        while(a<c||b<d){
            if(c>d){
                if(!d){breakout(-1);}
                ll ttmp=(c-a)/d;
                if(!ttmp){breakout(-1);}
                c-=ttmp*d;
                tmp+=ttmp;
            }else if(d>c){
                if(!c){breakout(-1);}
                ll ttmp=(d-b)/c;
                if(!ttmp){breakout(-1);}
                d-=ttmp*c;
                tmp+=ttmp;
            }else {breakout(-1);}
        }
        if(a==c&&b==d){
            coutinue(tmp);
        }else if(pd){
            coutinue(-1);
        }
    }
    return 0;
}