Cod sursa(job #634454)

Utilizator florin_marius90Florin Marius Popescu florin_marius90 Data 16 noiembrie 2011 13:35:57
Problema Algoritmul lui Euclid extins Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>

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

int main()
{
  
  FILE *f = fopen("euclid3.in","r"), *g = fopen("euclid3.out","w");
  int t;
  fscanf(f,"%i",&t);
  
  int i,a,b,c,d = 0, x = 0, y = 0;
  for (i = 0; i < t; i++)
  {
    fscanf(f,"%i%i%i",&a, &b, &c);
    
    euclid(a, b, &d, &x, &y);
    if (c % d == 0)
      fprintf(g, "%i %i\n", x*(c/d), y*(c/d));
    else
      fprintf(g, "0 0\n");
    
    
  }
  fclose(f);
  fclose(g);
  return 0;
}