Cod sursa(job #2207779)
Utilizator | Data | 26 mai 2018 19:33:35 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("euclid3.in");
ofstream g("euclid3.out");
int euclid(int a, int b, int *x, int *y)
{
if(b==0)
{*x=1;
*y=0;
return a;}
int x0, y0, d;
d=euclid(b, a%b, &x0, &y0);
*x=y0;
*y=x0-(a/b)*y0;
return d;
}
int main()
{ int a, b, d, x=0, y=0, r, t;
f>>t;
for(int i=1; i<=t; i++)
{
f>>a>>b>>d;
r=euclid(a, b, &x, &y);
if(d%r) g<<"0 0";
else
g<<x*(d/r)<<' '<<y*(d/r);
g<<'\n';
}
return 0;
}