Cod sursa(job #628484)

Utilizator alex280487Alex V alex280487 Data 1 noiembrie 2011 15:07:27
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <stdio.h>

using namespace std;

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

int main (void)
{
  FILE *f = fopen("euclid3.in","rt");
  FILE *g = fopen("euclid3.out","wt");

  if (!f || !g)
  {
    cerr << "Error" << endl;
    return 1;
  }

  int t;
  int a, b, c;
  fscanf(f, "%d", &t);

  for (int i = 0 ; i < t ; i ++)
  {
    fscanf(f, "%d %d %d", &a, &b, &c);

    int d;
    int x,y;
    euclid(a,b,d,x,y);
    
    if(c % d)
    {
      fprintf(g, "0 0\n");
      continue;
    }
    fprintf(g, "%d %d\n", x * (c / d), y * (c / d));
  }

  fclose(f);
  fclose(g);

  return 0;
}