正经题解
2025-11-14 19:38:01
发布于:广东
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll a, ll b, ll& x, ll& y) {
if (b == 0) {
x = 1;
y = 0;
return a;
}
ll x1, y1;
ll d = gcd(b, a % b, x1, y1);
x = y1;
y = x1 - y1 * (a / b);
return d;
}
int main() {
ll A, B, C;
cin >> A >> B >> C;
if (A == 0 && B == 0) {
return -1;
}
ll x0, y0;
ll g = gcd(llabs(A), llabs(B), x0, y0);
if (A < 0) x0 = -x0;
if (B < 0) y0 = -y0;
if (C % g != 0) {
cout << -1 << endl;
return 0;
}
ll k = -C / g;
ll x = x0 * k;
ll y = y0 * k;
ll L = -5'000'000'000'000'000'000LL;
ll R = 5'000'000'000'000'000'000LL;
if (x < L || x > R || y < L || y > R) {
cout << -1 << endl;
} else {
cout << x << " " << y << endl;
}
return 0;
}
这里空空如也

有帮助,赞一个