Cod sursa(job #416587)
Utilizator | Data | 12 martie 2010 23:05:07 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include<stdio.h>
long i,t,a,b,c,x,y,d;
FILE *f,*g;
inline long Euclid(long m,long n,long &x,long &y)
{ if(n==0) { x=1; y=0; return m; }
long xp,yp,d;
d=Euclid(n,m%n,xp,yp);
x=yp;
y=xp-(m/n)*yp;
return d;
}
int main()
{ f=fopen("euclid3.in","r"); g=fopen("euclid3.out","w");
fscanf(f,"%ld",&t);
for(i=1;i<=t;i++)
{ fscanf(f,"%ld%ld%ld",&a,&b,&c);
x=y=0; d=Euclid(a,b,x,y);
if(c%d) fprintf(g,"0 0\n");
else fprintf(g,"%ld %ld\n",x*(c/d),y*(c/d));
}
fclose(g);
return 0;
}