Cod sursa(job #1901847)

Utilizator georgerapeanuRapeanu George georgerapeanu Data 4 martie 2017 11:33:51
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <cstdio>
#define LL long long
using namespace std;
FILE *f=fopen("euclid3.in","r");
FILE *g=fopen("euclid3.out","w");
LL gcd(LL a,LL b,LL *x,LL *y)
{
    if(b==0)
    {
        *x=1;
        *y=0;
        return a;
    }
    else
    {
        LL x0,y0;
        LL tmp=gcd(b,a%b,&x0,&y0);
        *x=y0;
        *y=x0-(a/b)*y0;
        return tmp;
    }
}
LL N;
LL a,b,c;
int main()
{
    fscanf(f,"%lld",&N);
    for(int i=1;i<=N;i++)
    {
        fscanf(f,"%lld %lld %lld",&a,&b,&c);
        LL x,y;
        LL d=gcd(a,b,&x,&y);
        if((x*c)%d==0&&(y*c)%d==0)
        {
            fprintf(g,"%lld %lld\n",x*c/d,y*c/d);
        }
        else
        {
            fputs("0 0\n",g);
        }
    }
    fclose(f);
    fclose(g);
    return 0;
}