Cod sursa(job #1004115)

Utilizator toncuvasileToncu Vasile toncuvasile Data 2 octombrie 2013 09:44:55
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 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 inFile("euclid3.in");
   ofstream outFile;
   outFile.open("euclid3.out");
   inFile>>T;
   for(int i=1;i<=T;i++){
      inFile>>a>>b>>c;
      d=cmmdc(a,b);
      if(c%d!=0) outFile<<"0 0";
         else{
            solve(a,b);
            outFile<<x*(c/d)<<" "<<y*(c/d);
         }
   }

}

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;

      }
}