Cod sursa(job #312532)

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

void euclid(lld a,lld b,lld *d,lld *x,lld *y)
{
        if(b==0){ *x=1; *y=0; *d=a; }
        else { lld  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);
d=malloc(sizeof(lld*));  
x=malloc(sizeof(lld*)); 
y=malloc(sizeof(lld*));   
 
    
int i;
scanf("%d",&t);
for(i=1; i<=t; i++)
  { scanf("%lld %lld %lld",&a,&b,&c);
    
    euclid(a,b,d,x,y);
    if(c/(*d)==0)printf("0 0\n");
    else if(*d!=0) printf("%lld %lld\n",(c/(*d))*(*x),(c/(*d))*(*y));  
      
      //printf("%lld %lld %lld\n",a,b,(*d));
        
}


return 0;
}