Cod sursa(job #2580332)
Utilizator | Data | 13 martie 2020 15:02:05 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <cstdio>
int gcd(int a, int b, int& x, int& y){
int x0, y0, d;
if(b == 0){
x = 1;
y = 0;
return a;
}
d = gcd(b,a%b,x0,y0);
y = x0 - (a/b) * y0;
x = y0;
return d;
}
int T, a, b, c, d, x, y;
int main(){
freopen("euclid3.out","w",stdout);
freopen("euclid3.in","r",stdin);
scanf("%i", &T);
for(scanf("%i %i %i",&a,&b,&c); T; --T, scanf("%i %i %i",&a,&b,&c)){
d = gcd(a,b,x,y);
if(c%d)printf("0 0\n");
else printf("%i %i\n",(c/d)*x,(c/d)*y);
}
return 0;
}