Cod sursa(job #398563)

Utilizator andreirRoti Andrei andreir Data 18 februarie 2010 22:56:08
Problema Algoritmul lui Euclid extins Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>
long long i,T,a,b,c,d,y,x;
int euclid(long long a, long long b,long long &x, long long &y)
{
    if (b == 0) 
	{
        x = 1;
        y = 0;
		//printf("x=%d y=%d   a=%d b=%d\n",x,y,a,b);
		return a;
    }
	long long x0, y0,d;

	d=euclid(b, a % b,x0,y0);
	x = y0;
	y = x0 - (a / b) * y0;
	
	//printf("x=%d y=%d   a=%d b=%d\n",x,y,a,b);
	return d;
}

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