记录编号 571032 评测结果 AAAAAAAAAAAAAAAAAAAAA
题目名称 [POJ 1061] 青蛙的约会 最终得分 100
用户昵称 Gravatarlihaoze 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2022-05-04 19:02:41 内存使用 0.00 MiB
显示代码纯文本
#include <bits/stdc++.h>
#define OPEN(_x) freopen(#_x".in", "r", stdin); freopen(#_x".out", "w", stdout)
#define rep(_x, _y, _z) for (int _x = (_y); _x <= (_z); ++ _x)
#define rep1(_x, _y, _z) for (int _x = (_y); _x < (_z); ++ _x)
#define fi first
#define se second

using i64 = long long;
using PII = std::pair<int, int>;

i64 exgcd(i64 a, i64 b, i64 &x, i64 &y) {
    if (b == 0) { x = 1, y = 0; return a; }
    i64 d = exgcd(b, a % b, y, x);
    y -= x * (a / b);
    return d;
}

i64 x, y, m, n, L;
i64 p, t;

int main() {
    OPEN(poj_hama);
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cin >> x >> y >> m >> n >> L;
    i64 d = exgcd(L, n - m, p, t);
    i64 q = L / d;
    if ((x - y) % d != 0) std::cout << "Impossible" << '\n';
    else {
        t *= (x - y) / d;
        t %= q;
        while (t < 0) {
            if (q < 0) t -= q;
            else t += q;
        }
        std::cout << t << '\n';
    }
    return 0;
}