Cod sursa(job #2268279)

Utilizator Monstergentleman35Ciopraga Razvan Monstergentleman35 Data 24 octombrie 2018 17:20:31
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("euclid3.in");
ofstream fout("euclid3.out");

void solve(int,int,int);
void euclidextins(int,int,int&,int&);

int n;
int a,b,c;

int main()
{
 fin>>n;
 while (n!=0)
 {
  n--;
  fin>>a>>b>>c;
  solve(a,b,c);
 }
 return 0;
}

void euclidextins(int a1,int b1,int& d1,int& x1,int& y1)
{
 int yaux,xaux;
 if (b1==0)
 {
  x1=1;
  y1=0;
  d1=a1;
 }
 else
 {
  euclidextins(b1,a1%b1,d1,x1,y1);
  yaux=y1;
  xaux=x1;
  x1=yaux;
  y1=xaux-(a1/b1)*yaux;
 }
}

void solve(int a1,int b1,int c1)
{
 int d1,x1,y1;
 euclidextins(a1,b1,d1,x1,y1);
 if (c1%d1==0)
 {
  d1=c1/d1;
  x1*=d1;
  y1*=d1;
  fout<<x1<<" "<<y1<<"\n";
 }
 else
  fout<<0<<" "<<0<<"\n";
}