求助,前两个子任务没过
查看原帖
求助,前两个子任务没过
661913
liwenxi1145144444楼主2024/9/26 13:22
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,a,b,c,d;
signed main(){
	cin>>t;
	while(t--){
		cin>>a>>b>>c>>d;
		if(a*b==c*d){
			if(a==c){
				cout<<"0\n";
			}else{
				if(a>=c){
					cout<<"1\n1 "<<a/c<<"\n";
				}else{
					cout<<"1\n2 "<<b/d<<"\n";
				}
			}
		}else{
			int sum=1;
			bool flag=0;
			int r=a*b;
			while(1){
				if(r/c/d==1){
					sum++;
					if(c!=1){
						sum++;
					}
					cout<<sum<<"\n";
					break;
				}
				r=r/2+1;
				sum++;
				if(sum>65){
					cout<<"-1\n";
					flag=1;
					break;
				}
			}
			if(!flag){
				r=a*b;
				cout<<"1 "<<a<<'\n';
				int l=1;
				while(1){
					if(r/c/d==1){
						if(r==c*d){
							break;
						}
						cout<<l+1<<" "<<c*d<<"\n";
						l^=1;
						break;
					}
					int tmp=r/2+1;
					cout<<l+1<<" "<<tmp<<"\n";
					r=tmp;
					l^=1;
				}
				if(c!=1){
					cout<<l+1<<" "<<c*d/((l==0)?c:d)<<"\n";
				}
			}
		}
	}
	return 0;
}
2024/9/26 13:22
加载中...