Cod sursa(job #1922648)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 10 martie 2017 18:14:14
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
inline long long gcd(long long a,long long b){
   long long r;
   while(b){
     r=a%b;
     a=b;
     b=r;
   }
   return a;
}
inline void euclid(long long a,long long b,long long c,long long &x,long long &y){
   if(b==0){
      y=0;
      x=c/a;
      return ;
   }
   euclid(b,a%b,c,x,y);
   long long x0=x,y0=y;
   x=y0;
   y=x0-(a/b)*y0;
}
int main(){
   FILE*fi,*fout;
   int t;
   long long a,b,c,d,x,y;
   fi=fopen("euclid3.in" ,"r");
   fout=fopen("euclid3.out" ,"w");
   //fi=stdin;
   //fout=stdout;
   fscanf(fi,"%d " ,&t);
   while(t>0){
      t--;
      fscanf(fi,"%lld %lld %lld " ,&a,&b,&c);
      d=gcd(a,b);
      if(c%d!=0)
        fprintf(fout,"0 0\n");
      else{
        euclid(a,b,d,x,y);
        fprintf(fout,"%lld %lld\n" ,x*(c/d),y*(c/d));
      }
   }
   fclose(fi);
   fclose(fout);
   return 0;
}