扩欧70分!悬赏关注
查看原帖
扩欧70分!悬赏关注
666741
_wakeup楼主2023/3/29 11:26
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
#include<map>
#include<cstring>
#include<stack>
#define ll long long
using namespace std;
ll x1,x2,x,y,n,m,L,b,a,gcdans;
ll gcd(ll a,ll b)
{
	if(b==0)return a;
	return gcd(b,a%b);
}
void exgcd(ll a,ll b)
{
	if(b==0)
	{
		x=1,y=0;
		return;
	}
	exgcd(b,a%b);
	ll t=x;
	x=y,y=t-a/b*y;
}
int main()
{
	cin>>x1>>x2>>m>>n>>L;
	a=x1-x2,b=n-m;
	if(b<0)a=-a,b=-b;
	gcdans=gcd(b,L);
	if(a%gcdans!=0)cout<<"Impossible"<<endl;
	else
	{
		exgcd(b,L);
		x=(x*a/gcdans%L/gcdans+L/gcdans)%(L/gcdans);
		cout<<x<<endl;
	}
	return 0;
}
2023/3/29 11:26
加载中...