求助
查看原帖
求助
741732
small_Dongpo楼主2024/4/3 20:42

悬关

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

typedef long long l;
l x, y, n, m, len, x1, y1, g;

l exgcd(l a, l b, l &x, l &y) {
    if (b == 0) {
        x = 1;
        y = 0;
        return a;
    }
    l x2, y2, g = exgcd(b, a % b, x2, y2);
    x = y2;
    y = x2 - a / b * y2;
    return g;
}

int main() {
    scanf("%lld%lld%lld%lld%lld", &x, &y, &n, &m, &len);
    if (m < n) {
        swap(m, n);
        swap(x, y);
    }
    g = exgcd(m - n, len, x1, y1);
    if ((y - x) % g != 0) {
        printf("Impossible");
        return 0;
    }
    l z = len / g;
    x1 *= (y - x) / g;
    printf("%lld", (x1 % g + g) % g);
    return 0;
}
2024/4/3 20:42
加载中...