Cod sursa(job #2237774)

Utilizator radu.leonardoThe Doctor radu.leonardo Data 3 septembrie 2018 01:18:40
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>

using namespace std;

uint32_t gcdExtended(uint32_t a, uint32_t b, uint32_t & x, uint32_t & y) {
    if (a == 0) {
        x = 0;
        y = 1;
        return b;
    }
    uint32_t x1, y1;
    uint32_t d = gcdExtended(b % a, a, x1, y1);
    x = y1 - (b / a) * x1;
    y = x1;
    return d;
}

int main() {
    ifstream fin("euclid3.in");
    ofstream fout("euclid3.out");

    uint32_t t;
    fin>>t;
    while(t--) {
        uint32_t a,b,c,x,y,d;
        fin>>a>>b>>c;
        d=gcdExtended(a,b,x,y);
        if(c%d)
            fout<<0<<' '<<0<<'\n';
        else
            fout<<(x*c)%d<<' '<<(y*c)%d<<'\n';
    }

    return 0;
}