Cod sursa(job #2808884)

Utilizator Razvan11Rus Razvan Constantin Razvan11 Data 25 noiembrie 2021 16:53:41
Problema Algoritmul lui Euclid extins Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("euclid3.in");
ofstream gout("euclid3.out");

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;
    fin>>n;
    while(n)
    {
        fin>>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)
            gout<<0<<" "<<0;
        else
        {
            x=x*c/d;
            y=y*c/d;

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