Cod sursa(job #1004140)

Utilizator cozmin97Gemene Cozmin cozmin97 Data 2 octombrie 2013 10:33:20
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
using namespace std;

int t,a,b,c,x,y,x0,y0,d;

int cmmdc(int a, int b);
void solve(int a,int b);

int main()
{
   ifstream fin("euclid3.in");
   ofstream fout("euclid3.out");
   fin>>t;
   for(int i=1;i<=t;i++)
   {
      fin>>a>>b>>c;
      d=cmmdc(a,b);
      if(c%d!=0)
       fout<<"0 0"<<"\n";
         else
         {
            solve(a,b);
            fout<<x*(c/d)<<" "<<y*(c/d)<<"\n";
         }
   }

}

int cmmdc(int a,int b){
    if(b==0) return a;
       else return cmmdc(b,a%b);
}

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

      }
}