std正解
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<ctime> using namespace std ; typedef long long ll; ll m,n,l,a,b,c,t; ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b); } void exgcd(ll a,ll b,ll &x,ll &y){ if(!b){ x=1;y=0; return; } exgcd(b,a%b,y,x); y-=a/b*x; } int main() { ll x,y; scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l); a=n-m;b=l;c=x-y;t=gcd(a,b); if(c%t!=0){ printf("Impossible\n"); return 0; } a/=t;b/=t;c/=t; exgcd(a,b,x,y); x=((c*x)%b+b)%b; if(!x) x+=b; printf("%lld\n",x); return 0; }