Cod sursa(job #157758)

Utilizator igsifvevc avb igsi Data 13 martie 2008 11:28:33
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<stdio.h>

FILE *fin=fopen("euclid3.in","r");
FILE *fout=fopen("euclid3.out","w");

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

int main()
{
    long int a,b,d,x,y,t,c;
    fscanf(fin,"%ld",&t);
    
    for(long int i=1;i<=t;i++)
    {
       fscanf(fin,"%ld %ld %ld",&a,&b,&c);
       euclid_extins(a,b,d,x,y);
       if(c%d)
          fprintf(fout,"0 0\n");
       else
          fprintf(fout,"%ld %ld\n",x*(c/d),y*(c/d));
    }
    
    fclose(fout);
    fclose(fin);
    return 0;
}