Cod sursa(job #398556)

Utilizator andreirRoti Andrei andreir Data 18 februarie 2010 22:43:33
Problema Algoritmul lui Euclid extins Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>

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