Cod sursa(job #1700115)

Utilizator TincaMateiTinca Matei TincaMatei Data 9 mai 2016 16:40:32
Problema Algoritmul lui Euclid extins Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>

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

int main() {
  int t, i, a, b, c, x, y, d;
  FILE *fin = fopen("euclid3.in", "r");
  fscanf(fin, "%d", &t);
  FILE *fout = fopen("euclid3.out", "w" );

  for(i = 0; i < t; i++) {
    fscanf(fin, "%d%d%d", &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");
  }

  fclose(fin);
  fclose(fout);
  return 0;
}