Cod sursa(job #2666055)

Utilizator teochess2017Togan Teodor-Bogdan teochess2017 Data 31 octombrie 2020 19:14:53
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <stdio.h>
#include <stdlib.h>

int x, y, d;

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

int main()
{
    FILE *fin, *fout;
    int t, a, b, c, i, aux;
    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);
      aux = 1000000001;
      if(a < b){
        aux = a;
        a = b;
        b = aux;
      }
      cmmdc(a, b);
      if((c % d) != 0){
        fprintf(fout, "0 0\n");
      }else{
        if(aux == b){
          aux = x;
          x = y;
          y = aux;
        }
        fprintf(fout, "%d %d\n", x * (c / d), y * (c / d));
      }
    }
    fclose(fin);
    fclose(fout);
    return 0;
}