Cod sursa(job #627401)

Utilizator paul24090FMI - Balauru Paul paul24090 Data 29 octombrie 2011 20:02:54
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>

using namespace std;

long t,a,b,c,d,x,y;

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

long cmmdc(long a,long b)
{
	int c;
	c=a%b;
	while(c)
	{
		a=b;
		b=c;
		c=a%b;
	}
	return b;
}

int main()
{
	freopen("euclid3.in","rt",stdin);
	freopen("euclid3.out","wt",stdout);
	scanf("%d",&t);
	for(int i=1;i<=t;i++)
	{
		scanf("%d %d %d",&b,&a,&c);
		d=cmmdc(a,b);
		if(c%d!=0)
			printf("0 0\n");
		else
		{
			int k;
			euclidExtins(a,b,x,y);
			k=c/d;
			printf("%d %d\n",k*y,k*x);
		}
	}
	return 0;
}