Pagini recente » Cod sursa (job #972663) | Cod sursa (job #3224317) | Cod sursa (job #867729) | Cod sursa (job #2730519) | Cod sursa (job #2498741)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("euclid3.in");
ofstream out("euclid3.out");
typedef long long ll;
ll cmmdc(ll a, ll b, ll &x, ll &y) {
if(b == 0) {
x = 1;
y = 0;
return a;
} else {
ll xPrim, yPrim;
ll ans = cmmdc(b, a % b, xPrim, yPrim);
x = yPrim;
y = xPrim - (a / b) * yPrim;
return ans;
}
}
int main() {
int nTest;
in >> nTest;
for(int i=0; i<nTest; i++) {
ll a, b, c, x, y;
in >> a >> b >> c;
ll gcd = cmmdc(a, b, x, y);
cerr << "x=" << x << " y=" << y << " gcd = " << gcd << " a*x+b*y=" <<a*x+b*y << endl;
//Ce stim aici: a * x + b * y = gcd
if(c % gcd == 0){
out << x * (c / gcd) << ' ' << y * (c / gcd) << '\n';
}else{
out << "0 0\n";
}
}
return 0;
}