比赛 |
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;
}