Cod sursa(job #186309)

Utilizator andreisfrentSfrent Andrei andreisfrent Data 27 aprilie 2008 16:33:31
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>

FILE *fi = fopen("euclid3.in","r"), *fo = fopen("euclid3.out","w");

inline int gcd( int A, int B, int &X, int &Y )  
{  
    if (B == 0)  
    {  
        X = 1;  
        Y = 0;  
        return A;  
    }  
 
    int X0, Y0, D;  
    D = gcd( B, A % B, X0, Y0 );  
      
    X = Y0;  
    Y = X0 - (A / B) * Y0;  
    return D;  
}  

void rezolva_test()
{
	int a,b,c,x,y,d;
	fscanf(fi, "%d%d%d",&a,&b,&c);
	d=gcd(a,b,x,y);
	if(c%d) fprintf(fo, "0 0\n");
	else fprintf(fo, "%d %d\n", x*(c/d), y*(c/d));
}

int main()
{
	int t, i;
	fscanf(fi, "%d", &t);
	for(i=0;i<t;++i) rezolva_test();
	fclose(fi);
	fclose(fo);
	return 0;
}