Pagini recente » Cod sursa (job #3358480) | Cod sursa (job #3328452) | Cod sursa (job #3358326) | Cod sursa (job #3357762) | Cod sursa (job #3358340)
#include <stdio.h>
#include <stdlib.h>
long long cmmdc_extins(long long a, long long b, long long *x, long long *y) {
long long x0 = 1, x1 = 0;
long long y0 = 0, y1 = 1;
long long r0 = a, r1 = b;
while (r1 != 0) {
long long q = r0 / r1;
long long tmpr = r0 % r1;
r0 = r1;
r1 = tmpr;
long long tmpx = x0 - q * x1;
x0 = x1;
x1 = tmpx;
long long tmpy = y0 - q * y1;
y0 = y1;
y1 = tmpy;
}
*x = x0;
*y = y0;
return r0;
}
int main() {
FILE *fin = fopen("euclid3.in", "r");
FILE *fout = fopen("euclid3.out", "w");
if (fin == NULL || fout == NULL) {
return 0;
}
int T;
if (fscanf(fin, "%d", &T) == 1) {
while (T--) {
long long A, B, C;
if (fscanf(fin, "%lld %lld %lld", &A, &B, &C) == 3) {
long long x, y;
long long d = cmmdc_extins(A, B, &x, &y);
if (C % d != 0) {
fprintf(fout, "0 0\n");
} else {
x *= (C / d);
y *= (C / d);
fprintf(fout, "%lld %lld\n", x, y);
}
}
}
}
fclose(fin);
fclose(fout);
return 0;
}