Pagini recente » Cod sursa (job #2942837) | Cod sursa (job #2271028) | Cod sursa (job #2779375) | Cod sursa (job #1579859) | Cod sursa (job #1179685)
#include <fstream>
using namespace std;
ifstream fin("euclid3.in");
ofstream fout("euclid3.out");
long int t, a, b, c;
void egcd(long int a, long int b, long int & x, long int & y){
long int i = 0;
long int r, q, v[][2] = {1, 0, 0, 1, 0, 0};
do{
q = a / b; r = a % b;
v[(i + 2) % 3][0] = v[i % 3][0] - q*v[(i + 1) % 3][0];
v[(i + 2) % 3][1] = v[i % 3][1] - q*v[(i + 1) % 3][1];
a = b; b = r; i++;
} while (r);
x = v[i % 3][0]; y = v[i % 3][1];
}
long int gcd(long int a, long int b){
if (!b)
return a;
else
return gcd(b, a%b);
}
int main(){
long int g, x, y;
fin >> t;
for (; t; t--){
fin >> a >> b >> c;
g = gcd(a, b);
if (c % g == 0){
x = 0; y = 0;
egcd(a, b, x, y);
fout << x * (c / g) << ' ' << y * (c / g)<< '\n';
}
else{
fout << "0 0\n";
}
}
return 0;
}