Cod sursa(job #631716)

Utilizator StefanLacheStefan Lache StefanLache Data 9 noiembrie 2011 18:22:34
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<assert.h>
#include<stdio.h>
using namespace std;
int euclid(int a,int b,int &x,int &y)
{
	if(b==0)
	{
		
		x=1;
		y=0;
		return a;
	}
		int x0,y0,d;
		 d=euclid(b,a%b,x0,y0);
		x=y0;
		y=x0-(a/b)*y0;
		return d;
}
int main()
{
	freopen("euclid3.in","r",stdin);
	freopen("euclid3.out","w",stdout);
	int T;
	for(scanf("%d",&T),assert(T<=100);T;T--)
	{
		int a,b,c;
		scanf("%d %d %d",&a,&b,&c);
		assert(-1000000000<=a && a<=1000000000);
		assert(-1000000000<=b && b<=1000000000);
		assert(-2000000000<=c && c<=2000000000 && c!=0);
		int x,y,d;
		d=euclid(a,b,x,y);
		if(c%d)
			printf("0 0\n");
		else printf("%d %d\n",x*(c/d),y*(c/d));
	}
	return 0;
}