Cod sursa(job #2519619)

Utilizator filipasvladVlad Filipas filipasvlad Data 8 ianuarie 2020 00:18:07
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int euclidExtins(int a, int b, int& lastX, int& lastY)
{
    int x = 0, y = 1, q; lastX = 1; lastY = 0;
    // variabile temporare
    int tA, tX, tY;
    while(b != 0)
    {
        q = a / b; // aveti grija ca a > b
        tA = b; b = a % b; a = tA;

        tX = x; x = lastX - q * x; lastX = tX;
        tY = y; y = lastY - q * y; lastY = tY;
    }
    return a;
}
int main()
{
    int a, b, c, n, nr, x, y;
    fin >> n;
    for(int i = 1; i <= n; i++)
    {
        fin >> a >> b >> c;
        nr = euclidExtins(a, b, x, y);
        nr = c / nr;
        if(x * nr * a + y * nr * b == c)
            fout<< x*nr << ' ' << y*nr << '\n';
        else
            fout<<0<<' '<<0<<'\n';
    }
    return 0;
}