//============================================================================
// Name : 1061.cpp
// Author : sww
// Max Long :2147483647
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
typedef long long Long;
int lgcd(int a, int b) {
int c = a % b;
while (c != 0) {
a = b;
b = c;
c = a % b;
}
return b;
}
void reverse(int a, int b, int&m) {
int a1 = 1;
int b1 = 0;
for (int t = a % b; t != 0; t = a % b) {
int m = a / b;
int c1 = a1 - b1 * m;
a1 = b1;
b1 = c1;
a = b;
b = t;
}
m = b1;
}
int main() {
int x, y, m, n, l;
cin >> x >> y >> m >> n >> l;
if (m == n) {
cout << "Impossible" << endl;
} else {
int chv = n - m;
int chs = x - y;
int gcd = lgcd(chv, l);
int md = chs % gcd;
if (md) {
cout << "Impossible" << endl;
} else {
l /= gcd;
chs /= gcd;
chv /= gcd;
int r;
reverse(chv, l, r);
if (l < 0)
l = -l;
Long out = (chs * (Long)r) % l;
if (out < 0) {
out += l;
}
cout << out << endl;
}
}
return 0;
}
poj1061
最新推荐文章于 2020-03-02 18:06:33 发布