Cod sursa(job #313904)

Utilizator cipriancxFMI - gr143 Timofte Ciprian cipriancx Data 10 mai 2009 08:08:10
Problema Algoritmul lui Euclid extins Scor 20
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
#include<stdlib.h>
int a,b,c,*d,*x,*y,n;

 void euclid(int a, int b, int *d, int *x, int *y)
{
    if (b == 0) {
        *d = a;
        *x = 1;
        *y = 0;
    } else {
        int x0, y0;
        euclid(b, a % b, d, &x0, &y0);
        *x = y0;
        *y = x0 - (a / b) * y0;
    }
}




int main(void)
{
freopen("euclid3.in","r",stdin);
freopen("euclid3.out","w",stdout);

x=malloc(4); y=malloc(4);
d=malloc(4);
scanf("%d",&n);
int i;
for(i=1; i<=n; i++){
scanf("%d %d %d",&a,&b,&c);

euclid(a,b,d,x,y);
int rest;
rest=*d;
int rez=c/rest;
int aux=*x;
aux*=rez;
*x=aux; 
aux=*y; 
aux*=rez; *y=aux;
if(*x && *y)

printf("%d %d\n",*x,*y);

else printf("0 0\n");
}


return 0;
}