Cod sursa(job #3233188)

Utilizator razvanmanescuManescu Razvan razvanmanescu Data 2 iunie 2024 18:45:39
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#include <assert.h>

void euclidExtins(int a, int b, int *div, int *x, int *y)
{
	if (b == 0)
	{
		*x = 1;
		*y = 0;
		*div = a;
	}
	else {
		euclidExtins(b, a % b, div, x, y);
		int aux = *x;
		*x = *y;
		*y = aux - *y * (a / b);
	}
}

int main()
{
	FILE *in= fopen("euclid3.in", "r");
	FILE *out = fopen("euclid3.out", "w");
	int n;
	int a, b, c;
	int div, x, y;
	fscanf(in, "%d", &n);
	while(n>0){
		fscanf(in, "%d %d %d", &a, &b, &c);
		euclidExtins(a, b, &div, &x, &y);
		if (c % div != 0)
			fprintf(out,"0 0\n");
		else
			fprintf(out,"%d %d\n", x * (c / div), y * (c / div));
		n--;
	}

	return 0;
}