Cod sursa(job #655694)

Utilizator lianaliana tucar liana Data 3 ianuarie 2012 12:54:43
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
long aa, bb, xx, yy, a1, b1, r, c, d, ii, t;

void divizor()
{
	a1=aa;	b1=bb;	r=a1%b1;
	while (r>0)
	{	a1=b1;	b1=r;	r=a1%b1;	}
	d=b1;
}

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

int main()
{
	freopen("euclid3.in","r",stdin);
	freopen("euclid3.out","w",stdout);
	scanf("%ld",&t);
	for (ii=1;ii<=t;ii++)
	{
		scanf("%ld %ld %ld",&aa, &bb, &c);
		divizor();
		euclid(aa,bb,xx,yy);
		if (c%d==0)
			printf("%ld %ld\n",xx*(c/d),yy*(c/d));
		else
			printf("0 0");
	}
	return 0;
}