Cod sursa(job #143306)

Utilizator ProstuStefan-Alexandru Filip Prostu Data 26 februarie 2008 11:21:44
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <cstdio>

int gcd(int a, int b, int *x, int *y) {
	if (b == 0) {
		*x = 1; *y = 0;
		return a;
	}

	int x0, y0, d;
	
	d = gcd(b, a % b, &x0, &y0);
	*x = y0;
	*y = x0 - (a / b) * y0;

	return d;
}

int main(void) {
	freopen("euclid3.in", "rt", stdin);
	freopen("euclid3.out", "wt", stdout);
	int N, a, b, c, d, x, y;

	scanf(" %d", &N);
	while (N--) {
		scanf(" %d %d %d", &a, &b, &c);
		d = gcd(a, b, &x, &y);

		if (c % d)
			printf("0 0\n");
		else
			printf("%d %d\n", x * (c / d), y * (c / d));
	}

	return 0;
}