Cod sursa(job #1782945)

Utilizator mhushMihai p mhush Data 18 octombrie 2016 17:20:49
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

using namespace std;

ifstream f("euclid3.in");
ofstream g("euclid3.out");

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

int main()
{
	int a, b, n, c, d, x, y;
    f >> n;
    for (int i = 0; i < n; ++i) {
		f >> a >> b >> d;
		euclid(a, b, c, x, y);
		if (d % c)
            g << 0 << ' ' << 0 << '\n';
        else // am gasit x si y pt cel mai mic c, iar acum inmultim cu (d/c) ca suma sa fie d
            g << x * (d / c) << ' ' << y * (d / c) << '\n';
    }

    f.close();
    g.close();
    return 0;
}