Cod sursa(job #761570)
Utilizator | Data | 26 iunie 2012 16:27:20 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <stdio.h>
FILE *f = fopen("euclid3.in","r");
FILE *g = fopen("euclid3.out","w");
int T,i;
long a,b,c;
void euclid(long a,long b,long *d,long *x,long *y){
if(b==0){
*d = a;
*x = 1;
*y = 0;
}
else{
long x0,y0;
euclid(b,a%b,d,&x0,&y0);
*x = y0;
*y = x0 - (a/b)*y0;
}
}
int main(){
fscanf(f,"%d",&T);
for(i = 0;i<T;i++){
long x,y,d;
fscanf(f,"%ld%ld%ld",&a,&b,&c);
euclid(a,b,&d,&x,&y);
if(c%d != 0)
fprintf(g,"%d %d\n",0,0);
else
fprintf(g,"%ld %ld\n",x*c/d,y*c/d);
}
return 0;
}