Cod sursa(job #143396)

Utilizator alex_aurelia_31Neamtu Alexandra alex_aurelia_31 Data 26 februarie 2008 14:22:06
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
#include<assert.h>
FILE *f,*g;

long int ec(long int a, long int b,long int&x, long int&y)
{
if(b==0)
{
x=1;
y=0;
return a;
}

long int x0,y0,d;
d=ec(b,a%b,x0,y0);
x=y0;
y=x0-(a/b)*y0;
return d;
}

int main()
{
f=fopen("euclid3.in","r");
g=fopen("euclid3.out","w");
int t;
long a,b,c,d,x,y;
for(fscanf(f,"%d",&t),assert(t<=100);t;t--)
{
fscanf(f,"%ld %ld %ld\n",&a,&b,&c);
assert(-1000000000<=a && a<=1000000000);
assert(-1000000000<=b && b<=1000000000);
assert(-2000000000<=c && c<=2000000000 && c!=0);
d=ec(a,b,x,y);
if(c%d)
fprintf(g,"0 0\n");
else
fprintf(g,"%ld %ld\n",x*(c/d),y*(c/d));
}
fcloseall();
return 0;
}