Cod sursa(job #1228880)

Utilizator PTAdrian64Pop-Tifrea Adrian PTAdrian64 Data 15 septembrie 2014 18:48:39
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <cstdio>
#include <assert.h>
#define Minab -1000000000
#define Maxc 2000000000

using namespace std;


inline int Eeuclid(int a,int b,int &x,int &y)
{
   if(b == 0)
     {
      x=1;
      y=0;
      return a;
     }

   int x0,y0,d;
   d=Eeuclid( b, a % b , x0 , y0 );

   x = y0;
   y = x0 - (a / b) * y0;
   return d;
}

int main(void)
{
     int t;
     //long a,b,c,d,x,y;
     freopen("euclid3.in","r",stdin);
     //freopen("euclid3.out","w",stdout);
     scanf("%d" , &t);
     assert(t<101);
     while(t--)
    {

        
        int a,b,c; 
        scanf("%d %d %d", &a, &b, &c);
        
        assert(Minab <= a && a <= -Minab && Minab <=b && -Minab >= b && -Maxc <= c && Maxc >= c && c!=0 );

        int d, x, y;
        d = Eeuclid(a, b, x, y);
                
        if(c % d)
            printf("0 0\n");
        else
            printf("%d %d\n",x * (c / d), y * ( c / d));
        //t--;
     }
}