Cod sursa(job #599991)

Utilizator noobHikaru noob Data 30 iunie 2011 11:36:49
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <stdlib.h>
#include <stdio.h>

void euclid3(int a,int b,int * d,int * x,int * y);

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

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