Cod sursa(job #2522010)

Utilizator cezar_titianuTitianu Cezar cezar_titianu Data 11 ianuarie 2020 20:24:27
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

using namespace std;

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

int nrnr, nra, nrb, nrc, nrx, nry, nrd;

int extended_euclid(int nra, int nrb, int* nrx, int* nry)
{
	if (nrb == 0)
	{
		*nrx = 1;
		*nry = 0;
		return nra;
	}
	else
	{
		int nrx0, nry0, nrd;
		nrd = extended_euclid(nrb, nra % nrb, &nrx0, &nry0);
		*nrx = nry0;
		*nry = nrx0 - (nra / nrb) * nry0;
		return nrd;
	}
}

int main()
{
	fin >> nrnr;
	for (int index = 0; index < nrnr; index++)
	{
		fin >> nra >> nrb >> nrc;
		nrd = extended_euclid(nra, nrb, &nrx, &nry);
		if (nrc % nrd) {
			fout << "0 0" << endl;
		}
		else {
			fout << nrx * (nrc / nrd) << " " << nry * (nrc / nrd) << endl;
		}
	}
}