Cod sursa(job #2454841)

Utilizator deiubejanAndrei Bejan deiubejan Data 9 septembrie 2019 22:19:03
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <bits/stdc++.h>
using namespace std;

#define ll long long

ifstream fin("euclid3.in");
ofstream fout("euclid3.out");
/*
*/
#define cin fin
#define cout fout



const int MAXN=104;
int n;
tuple<int,int,int>v[MAXN];


void read()
{
    int a, b, c;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a>>b>>c;
        v[i]=make_tuple(a,b,c);
    }
}

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

    return d;
}


void solve()
{
    int a, b, c, d, x, y;
    for(int i=1; i<=n; i++)
    {
        a=get<0>(v[i]);
        b=get<1>(v[i]);
        c=get<2>(v[i]);
        d=EuclidExtins(a,b,x,y);
        if(c%d)
            cout<<0<<" "<<0<<"\n";
        else
            cout<<x*(c/d)<<" "<<y*(c/d)<<"\n";

    }
}

int main()
{
    read();
    solve();

    return 0;
}