Cod sursa(job #595614)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 13 iunie 2011 13:11:59
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>

FILE*f=fopen("euclid3.in","r");
FILE*g=fopen("euclid3.out","w");

int T,a,b,c;

void euclid ( int a, int b, int *d, int *x, int *y ){
	
	if ( !b ){
		*d = a; *x = 1; *y = 0;
		return ;
	}
	
	int x0,y0;
	euclid(b,a % b,d,&x0,&y0);
	*x = y0;
	*y = x0 - (a / b) * y0;
}

int main () {
	
	fscanf(f,"%d",&T);
	
	for ( ; T ; --T ){
		
		fscanf(f,"%d %d %d",&a,&b,&c);
		
		int x,y,d;	euclid(a,b,&d,&x,&y);
		
		if ( c % d ){
			x = y = 0;
		}
		else{
			x = x * ( c / d ); y = y * ( c / d );
		}
		
		fprintf(g,"%d %d\n",x,y);
	}
	
	fclose(f);
	fclose(g);
	
	return 0;
}