Cod sursa(job #2808858)

Utilizator Razvan11Rus Razvan Constantin Razvan11 Data 25 noiembrie 2021 16:35:39
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>

using namespace std;

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

}
int main()
{
    long long a,b,c,d,x,y,ok=1,n;
    cin>>n;
    while(n)
    {
        cin>>a>>b>>c;
            ok=1;
        if(a<b)
        {
            swap(a,b);
            ok=0;

        }

        euclid(max(a,b),min(a,b),&d,&x,&y);
        ///cout<<x<<" "<<y<<" "<<d<<endl;
        if(c%d!=0)
            cout<<0<<" "<<0;
        else
        {
            x=x*c/d;
            y=y*c/d;

            if(ok==1)
                cout<<x<<" "<<y<<" "<<d<<endl;
            else
                cout<<y<<" "<<x<<" "<<d<<endl;
        n--;
        }
    }
    return 0;
}