比赛 2025.9.13 评测结果 AAAAAAAAAAAA
题目名称 Transforming Pairs 最终得分 100
用户昵称 梧叶已同秋雨去 运行时间 0.336 s
代码语言 C++ 内存使用 3.69 MiB
提交时间 2025-09-13 10:04:24
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int t;bool fff=0;
unsigned long long a,b,c,d,m;
void work(){
	while(!(a==c&&b==d)){
//		cout<<c<<" "<<d<<" "<<m<<endl;
		if(a==c){
			d-=b;
			if(d%a!=0){
				fff=1;
				return;
			}else{
				m+=d/a;
				return;
			}
		} 
		if(b==d){
			c-=a;
			if(c%b!=0){
				fff=1;
				return;	
			}else{
				m+=c/b;
				return;
			}
		}
		if(a>c||b>d){
			fff=1;
			return;
		}
		if(d<a||c<b){
			if(c>d){
				c-=d;
				m++;
			}else{
				d-=c;
				m++;
			}continue;
		}
		if(c>d){
			m+=c/d;
			c%=d;
		}else{
			m+=d/c;
			d%=c;
		}
	}
	return;
}
int main(){
	freopen("Transforming.in","r",stdin);
	freopen("Transforming.out","w",stdout);
	cin>>t;
	while(t--){
		cin>>a>>b>>c>>d;
		m=0;fff=0;
		if(a>c||b>d){
			cout<<-1<<"\n";
			continue;
		}
		if(a==c&&b==d){
			cout<<0<<"\n";
			continue;
		}
		work();
		if(fff==1){
			cout<<-1<<"\n";
		}else{
			cout<<m<<"\n";
		}
	}
	return 0; 
}