Cod sursa(job #1526723)

Utilizator stoianmihailStoian Mihail stoianmihail Data 17 noiembrie 2015 08:27:00
Problema Algoritmul lui Euclid extins Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>

void euclid(int A, int B, int *X, int *Y, int *D) {
  if (!B) {
    *X = 1, *Y = 0, *D = A;
  } else {
    int X0, Y0;
    euclid(B, A % B, &X0, &Y0, D);

    *X = Y0;
    *Y = X0 - Y0 * (A / B);
  }
}

int main(void) {
  int T, A, B, C, X, Y, D;
  FILE *in = fopen("euclid3.in", "r");
  FILE *out = fopen("euclid3.out", "w");

  for (fscanf(in, "%d", &T); T; T--) {
    fscanf(in, "%d %d %d", &A, &B, &C);

    euclid(A, B, &X, &Y, &D);

    if (C % D) {
      fprintf(out, "%d %d\n", 0, 0);
    } else {
      fprintf(out, "%d %d\n", X * (C / D), Y * (C / D));
    }
  }
  fclose(in);
  fclose(out);

  /// Multumim Doamne!
  puts("Doamne ajuta!");
  return 0;
}