Cod sursa(job #3251237)

Utilizator Vlad3108Tir Vlad Ioan Vlad3108 Data 25 octombrie 2024 15:01:59
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
typedef long long i64;

pair<int, int> extended_gcd(int a, int b) {
    if (b == 0) {
        return {1, 0};
    }

    pair<int, int> r = extended_gcd(b, a % b);
    return {r.second, (r.first - a / b * r.second)};
}

int inv(int x, int MOD) {
    int ans = extended_gcd(x, MOD).first;
    if (ans < 0)
        ans += MOD;
    return ans;
}

int main() {
    // freopen("euclid3.in",  "r", stdin);
    // freopen("euclid3.out", "w", stdout);
    int t;
    cin >> t;
    while (t--) {
        int a, b, c;
        cin >> a >> b >> c;
        int d = __gcd(a, b);
        if (c % d != 0) {
            cout << "0 0\n";
            continue;
        }
        pair<int, int> ans = extended_gcd(a, b);
        cout << ans.first * (c / d) << " " 
            << ans.second * (c / d) << "\n";
    }
}