Cod sursa(job #3298803)

Utilizator 13wannabedevBenczik Roberto-Patrik 13wannabedev Data 1 iunie 2025 21:34:04
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>

using namespace std;

typedef long long ll;
ifstream f("euclid3.in");
ofstream g("euclid3.out");

ll cmmdc(ll a, ll b) {
    if (b != 0) {
        return cmmdc(b, a % b);
    } else {
        return a;
    }
}

void euclid(ll a, ll b, ll &x, ll &y) {
    if (b == 0) {
        x = 1;
        y = 0;
    } else {
        ll z, t;
        euclid(b, a % b, z, t);
        x = t;
        y = z - (a / b) * t;
    }
}

int main(void) {
    ll t = 0;
    f >> t;

    while (t--) {
        ll a = 0, b = 0, c = 0;
        f >> a >> b >> c;

        ll d = cmmdc(a, b);

        if (c % d != 0) {
            g << 0 << ' ' << 0 << '\n';
        } else {
            ll x = 0, y = 0;
            euclid(a, b, x, y);

            x *= (c / d);
            y *= (c / d);

            g << x << " " << y << '\n';
        }
    }

    return 0;
}