Cod sursa(job #2909555)

Utilizator munceanMuncean Mihai-Rares muncean Data 14 iunie 2022 09:16:16
Problema Algoritmul lui Euclid extins Scor 10
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#pragma warning (disable:4996)

#include <stdio.h>

void euclid_extins(int *d, int *x, int *y, int a, int b)
{
	if (!b)
	{
		*d = a;
		*x = 1;
		*y = 0;
	}
	else
	{
		int auxX , auxY;
		euclid_extins(d, &auxX, &auxY, b, a % b);
		*x = auxY;;
		*y = auxX - auxY * (a / b);
	}
}


int main()
{
	int A, x, y, N, d, C, i, T;

	FILE *f, *g;

	f = fopen("euclid3.in", "rt");
	g = fopen("euclid3.out", "wt");

	fscanf(f, "%d", &T);
	for (i = 1; i <= T; i++)
	{
		x = 0;
		y = 0; 
		d = 0;

		fscanf(f, "%d", &A);
		fscanf(f, "%d", &N);
		fscanf(f, "%d", &C);

		euclid_extins(&d, &x, &y, A, N);

		if (C%d == 0)
		{
			fprintf(g, "%d %d\n", x*C / d, y*C / d);
		}
		else
		{
			fprintf(g, "0 0");
		}
	}

	fclose(f);
	fclose(g);

	return 0;
}