扩展欧几里得的简单应用~~
#include<iostream>
#include<string.h>
#include<string>
using namespace std;
long long x1,y1,d;
void gcd(long long a,long long b)
{
if(!b) {x1=1;y1=0;d=a;}
else
{
gcd(b,a%b);
long long temp=x1;
x1=y1;
y1=temp-(long long )a/b*x1;
}
}
int main()
{
long long x,y,m,n,L;
while(cin>>x>>y>>m>>n>>L)
{
long long a=n-m;
long long c=x-y;
long long b=L;
gcd(a,b);
long long r=b/d;
if(c%d==0) printf("%lld\n",(c/d*x1%r+r)%r);
else printf("Impossible\n");
}return 0;
}