#include<bits/stdc++.h>
#define int long long
using namespace std;
int x, y;
inline int exgcd(int a, int b)
{
if(a % b == 0)
{
x = 0, y = 1;
return b;
}
int gcd = exgcd(b, a % b);
int z = x; x = y; y = z - y * (a / b);
return gcd;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int x, y, m, n, l;
cin >> x >> y >> m >> n >> l;
int a = n - m, b = l, c = x - y;
if(a < 0) a = -a, c = -c;
int gcd = exgcd(a, b);
if(c % gcd != 0) cout << "Impossible";
else cout << ((x * (c / gcd)) % (b / gcd) + (b / gcd)) % (b / gcd);
return 0;
}
如果扩欧像我这样写不传实参,一定要注意变量重名!
被重名卡了五六次。