70分求改谢谢大佬们
查看原帖
70分求改谢谢大佬们
529466
0717lhlh楼主2022/11/3 15:20
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll exgcd(ll a,ll b,ll &x,ll &y){
	if(b==0){x=1; y=0; return a;}
	ll ans=exgcd(b,a%b,x,y);
	ll t=x; x=y; y=t-a/b*y;
	return ans;
}
int main(){
	ll xx,yy,m,n,l,x1,y1;
	cin>>xx>>yy>>m>>n>>l;
	if(yy>xx){
		ll mi=xx; xx=yy; yy=mi;
		mi=m; m=n; n=mi;
	}//保证一在二前面 
	int a=((n-m)%l+l)%l;
	ll k=exgcd(a,l,x1,y1);
	if((xx-yy)%k!=0) {
		cout<<"Impossible";
		return 0;
	}
	x1=((x1%l+l)%l*(xx-yy))%l;
	cout<<x1;
	return 0;
}
2022/11/3 15:20
加载中...