Cod sursa(job #1338209)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 9 februarie 2015 21:04:01
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;

void euclid(int a, int b, int * x, int * y, int * d);

int main(){
	ifstream in("euclid3.in");
	int a, b, c, x, y, d, k;
	in >> k;
	ofstream out("euclid3.out");

	for (int i = 0; i < k; i++){

		in >> a >> b >> c;
		euclid((a >= b) ? a : b, (b > a) ? a : b, &x, &y, &d);

		if (c % d == 0)
			out << x * (c / d) << ' ' << y * (c / d) << '\n';
		else
			out << "0 0\n";
	}

}

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