洛谷1516 青蛙的约会

传送门

exgcd

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long g;
long long xx,yy;
long long exgcd(long long a,long long b,long long &x,long long &y)
{
	if(b==0)
	{
		x=1;
		y=0;
		return a;
	}
	g=exgcd(b,a%b,y,x);
	y-=a/b*x;
	return g;
}
int main()
{
	long long x,y,n,m,l;
	scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l);
	long long a,b;
	a=x-y;
	b=n-m;
	if(b<0)a=-a,b=-b;
	exgcd(b,l,xx,yy);
	if(a%g!=0)
	{
		puts("Impossible");
		return 0;
	}
	else
	{
		printf("%lld",((xx*(a/g))%(l/g)+(l/g))%(l/g));
		return 0;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_35152804/article/details/87951218