Cod sursa(job #2215647)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 22 iunie 2018 21:58:01
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

typedef long long ll;

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

void EuclidExtins(ll x,ll y,ll &a,ll &b,ll &gcd){
    if(y == 0){
        gcd = x;
        a = 1;
        b = 0;
        return ;
    }
    EuclidExtins(y , x % y , a, b, gcd);
    ll NewA = b;
    ll NewB = a - b * (x / y);
    a = NewA;
    b = NewB;
}

int main()
{
    int n;
    in>>n;
    for(int i = 1; i <= n; i++){
        ll x,y,c,a,b,gcd;
        in>>x>>y>>c;
        EuclidExtins(x,y,a,b,gcd);

        if(c % gcd != 0)
            out<<0<<" "<<0;
        else
            out<<a*(c/gcd)<<" "<<b*(c/gcd);
        out<<"\n";
    }


    return 0;
}