Pagini recente » Cod sursa (job #1696778) | Cod sursa (job #2663678) | Cod sursa (job #1889542) | Borderou de evaluare (job #132007) | Cod sursa (job #645240)
Cod sursa(job #645240)
#include<fstream>
#include<iostream>
using namespace std;
int euclid(int a, int b)
{
int c;
while (b) {
c = a % b;
a = b;
b = c;
}
return a;
}
int t,a,b,c;
inline int gcd( int A, int B, int &X, int &Y )
{
if (B == 0)
{
X = 1;
Y = 0;
return A;
}
int X0, Y0, D;
D = gcd( B, A % B, X0, Y0 );
X = Y0;
Y = X0 - (A / B) * Y0;
return D;
}
void euclidext(int a,int b,int &x,int &y){
if( b==0){
x=1;
y=0;
}
else{
int x0,y0;
euclidext(b, a % b, x0, y0);
x = y0;
y = x0 - (a / b)*y0;
}
}
int main(){
ifstream f("euclid3.in");
ofstream g("euclid3.out");
f>>t;
int i;
for(i=1;i<=t;i++){
f>>a>>b>>c;
int d,x,y;
d=euclid(a,b);
if(c%d!=0){
g<<"0 0\n";
}
else{
euclidext(a,b,x,y);
g<<x*c/d<<" "<<y*c/d<<'\n';
}
}
return 0;
}