Cod sursa(job #2217273)

Utilizator andrei.arnautuAndi Arnautu andrei.arnautu Data 29 iunie 2018 20:16:50
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
/**
  *  Worg
  */
#include <cstdio>

FILE *fin = freopen("euclid3.in", "r", stdin); FILE *fout = freopen("euclid3.out", "w", stdout);

int Euclid(int a, int b, int &x, int &y) {
  if(!b) {
    x = 1; y = 0;
    return a;
  }

  int x0, y0;
  int div = Euclid(b, a % b, x0, y0);

  x = y0;
  y = x0 - (a / b) * y0;

  return div;
}

int main() {
  int testCount; scanf("%d", &testCount);

  for(int i = 0; i < testCount; i++) {
    int a, b, c; scanf("%d%d%d", &a, &b, &c);

    int div, x, y;
    div = Euclid(a, b, x, y);

    if(c % div == 0) {
      printf("%d %d\n", x * (c / div), y * (c / div));
    } else {
      printf("0 0\n");
    }
  }

  return 0;
}