Cod sursa(job #1483712)

Utilizator mike93Indricean Mihai mike93 Data 9 septembrie 2015 19:53:41
Problema Algoritmul lui Euclid extins Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>

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

int main() {
	FILE* fin = fopen("euclid3.in", "r");
	int a, b, c;
	int d, x, y;
	int t;
	fscanf(fin, "%d\n", &t);
	FILE* fout = fopen("euclid3.out", "w");
	int i;
	for(i=0; i<t; i++) {
		fscanf(fin, "%d %d %d\n", &a, &b, &c);
		euclid(a, b, &d, &x, &y);
		if(c % d == 0) {
			fprintf(fout, "%d %d\n", (x * c / d), (y * c / d));
		} else {
			fprintf(fout, "0 0\n");
		}
		fprintf(fout, "%d\n", c);
	}
	
	fclose(fin);	
	fclose(fout);
	return 0;
}