老师拿cena测AC,UKE了
查看原帖
老师拿cena测AC,UKE了
776799
GODTREE楼主2023/9/26 13:45
#include<bits/stdc++.h>
using namespace std;
#define int long long
bool flag;
int t,x,y,p,q,d,a,b,ans;
void exgcd(int a,int b,int &x,int &y)
{
	if(b==0)
	{
		d=a;
		x=1;
		y=0;
		return;
	}
	exgcd(b,a%b,x,y);
	int tmp=x;
	x=y;
	y=tmp-a/b*y;
}
signed main()
{
	freopen("oversleeping.in","r",stdin);
	freopen("oversleepint.out","w",stdout);
	cin>>t;
	while(t--)
	{
		cin>>x>>y>>p>>q;
		ans=0x7fffffffffffffff;
		flag=0;
		exgcd(2*(x+y),p+q,a,b);
		for(int i=x;i<x+y;i++)
		{
			for(int j=p;j<p+q;j++)
			{
				if((j-i)%d!=0)
				{
					continue;
				}
				flag=1;
				int k=(j-i)/d;
				int tmp=a*k;
				tmp=(tmp%((p+q)/d)+((p+q)/d))%((p+q)/d);
				ans=min(ans,tmp*2*(x+y)+i);
			}
		}
		if(flag==0)
		{
			cout<<"infinity";
		}
		else 
		{
			cout<<ans;
		}
		cout<<'\n';
	}
	return 0;
}
2023/9/26 13:45
加载中...