Cod sursa(job #252422)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 4 februarie 2009 13:52:36
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>

void euclid(long long a, long long b, long long &d, long long &x, long long &y);

int main()
{
	int t, i;
	long long a, b, c, d, x, y;
	freopen("euclid3.in", "r", stdin);
	freopen("euclid3.out", "w", stdout);
	scanf("%d", &t);
	for (i=0; i<t; i++)
	{
		scanf("%lld%lld%lld", &a, &b, &c);
		euclid(a, b, d, x, y);
		if ((d==0)||(c%d))
			printf("0 0\n");
		else
			printf("%lld %lld\n", x*(c/d), y*(c/d));
	}//for i
	return 0;
}//main

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