比赛 2025.9.13 评测结果 AAAAAAAAAAAA
题目名称 Transforming Pairs 最终得分 100
用户昵称 左清源 运行时间 0.067 s
代码语言 C++ 内存使用 3.85 MiB
提交时间 2025-09-13 09:08:35
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
ll sum;
void dfs(ll a,ll b,ll c,ll d){
	//cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
	if(c<a||d<b){
		printf("-1\n");
		return;
	}else if(a==c&&b==d){
		printf("%lld\n",sum);
		return;
	}else{
		if(c>d){
			ll res=c-a;
			sum+=res/d;
			if(!(res/d)){
				printf("-1\n");
				return;
			}
			dfs(a,b,c-res/d*d,d);
		}else{
			ll res=d-b;
			sum+=res/c;	
			if(!(res/c)){
				printf("-1\n");
				return;
			}
			dfs(a,b,c,d-res/c*c);
		}
	}
	return;
}
int main(){
	freopen("Transforming.in","r",stdin);
	freopen("Transforming.out","w",stdout);
	int T;ll a,b,c,d,ans;
	scanf("%d",&T);
	while(T--){
		scanf("%lld %lld %lld %lld",&a,&b,&c,&d);
		sum=0,dfs(a,b,c,d);
	}
	return 0;
}
/*
5 3 8 19
*/