Cod sursa(job #2668241)

Utilizator marquiswarrenMajor Marquis Warren marquiswarren Data 4 noiembrie 2020 17:59:49
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>

int main() {
	freopen("euclid3.in", "r", stdin);
	freopen("euclid3.out", "w", stdout);

	int t;
	scanf("%d", &t);

	int c;
	std::valarray<int> mat[] = {{0, 1, 0}, {0, 0, 1}};

	while (t--) {
		scanf("%d %d %d", &mat[0][0], &mat[1][0], &c);
		mat[0][1] = mat[1][2] = 1;
		mat[0][2] = mat[1][1] = 0;

		while (mat[0][0] && mat[1][0]) {
			int r = mat[0][0] > mat[1][0] ? 0 : 1;
			mat[r] -= (mat[r][0] / mat[1 - r][0]) * mat[1-r];
		}

		int r = mat[0][0] ? 0 : 1;

		if (c % mat[r][0] != 0) {
			printf("0 0\n");
			continue;
		}

		printf("%d %d\n", mat[r][1] * c / mat[r][0], mat[r][2] * c / mat[r][0]);
	}

	return 0;
}