Cod sursa(job #1424044)

Utilizator cella.florescuCella Florescu cella.florescu Data 23 aprilie 2015 12:12:04
Problema Algoritmul lui Euclid extins Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <stdlib.h>

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

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