Cod sursa(job #1494683)

Utilizator Firealex2Rotileanu Alexandru Firealex2 Data 1 octombrie 2015 19:11:48
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fi("euclid3.in");
ofstream fo("euclid3.out");
long long a=0, b=1, ap=1, bp=0, d, c;
int extendedeuclid(int m, int n)
{
	int t;
	c = m;
	d = n;
	int r = 1, q;
	while (r != 0)
	{
		r = c%d;
		q = c / d;
		c = d;
		d = r;
		t = ap;
		ap = a;
		a = t - q*a;
		t = bp;
		bp = b;
		b = t - q*b;
	}
	return d;
}
int main()
{
	long long T, m, n, p;
	int i;
	fi >> T;
	for (i = 1; i <= T; i++)
	{
		a = 0, b = 1, ap = 1, bp = 0;
		fi >> m >> n >> p;
		if ((m != 0) && (n != 0))
			extendedeuclid(m, n);
		/*else if (n == 0)
				if (p%m == 0)
					fo << p / m << " 0" << "\n";
				else fo << "0 0"<<"\n";
		else if (m==0)
			if (p%n == 0)
				fo << "0 " << p/n << "\n";
			else fo << "0 0"<<"\n";*/

		if (p%c == 0)
		{
			fo << ap*(p/c) << " " << bp*(p/c)<<"\n";
		}
		else fo << "0 0"<<"\n";
		//fo << ap << "*" << m << " + " << bp << "*" << n << " = " << c<<endl;
	}
	//cout << ap << "*" << m << " + " << bp << "*" << n << " = " << c;
	return 0;
}