#include <stdio.h>
__int64 extGCD(__int64 a, __int64 b, __int64 &x, __int64 &y)
{
if (!b) {x=1; y=0; return a; }
int d=extGCD(b,a%b,x,y);
int t=x; x=y; y=t-a/b*y;
return d;
}
int main()
{
__int64 x,y,m,n,l,d,r,Y,X;
scanf("%I64d%I64d%I64d%I64d%I64d",&x,&y,&m,&n,&l);
d=extGCD(n-m,l,X,Y); r=l/d;
if ((x-y)%d)
printf("Impossible\n");
else
printf("%I64d\n",((x-y)/d*X%r+r)%r);
return 0;
}
1061 青蛙的约会 数论 扩展GCD
最新推荐文章于 2019-07-14 07:24:34 发布