Pagini recente » Cod sursa (job #2767796) | Cod sursa (job #2984261) | Istoria paginii runda/judet10-1 | Cod sursa (job #2514970) | Cod sursa (job #1098868)
//
// main.cpp
// euclid3
//
// Created by Casuneanu Andrei on 05/02/14.
// Copyright (c) 2014 Casuneanu Andrei. All rights reserved.
//
#include <fstream>
#define IN "euclid3.in"
#define OUT "euclid3.out"
using namespace std;
ifstream fin(IN);
ofstream fout(OUT);
void euclid(long long int, long long int, long long int&, long long int&);
long long int cmmdc(long long int, long long int);
int t;
int main(int argc, const char * argv[])
{
long long int i;
long long int a, b, c, x, y;
long long int xx;
fin >>t;
for (i=0; i<t; i++)
{
fin >>a>>b>>c;
xx=cmmdc(a, b);
if (c%xx) fout <<0<<' '<<0<<'\n';
else
{
euclid(a*(c/xx), b*(c/xx), x, y);
fout <<x<<' '<<y<<'\n';
}
}
fout.close();
return 0;
}
long long int cmmdc(long long int a, long long int b)
{
if (!b) return a;
return cmmdc(b, a%b);
}
void euclid(long long int a, long long int b, long long int &x, long long int &y)
{
if (!b) {x=1; y=0; return;}
long long int x0, y0;
euclid(b, a%b, x0, y0);
x=y0;
y=x0-y0*(a/b);
}