Cod sursa(job #2476596)

Utilizator CyborgSquirrelJardan Andrei CyborgSquirrel Data 19 octombrie 2019 09:57:50
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

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

struct solu{
    int k, l, d;
};

solu nepitagora(int a, int b){
    if(b == 0){
        return {1, 0, a};
    }
    solu idk = nepitagora(b, a%b);
    solu kdi = {idk.l, idk.k-(a/b)*idk.l, idk.d};
    return kdi;
}

int n;
int main()
{
    int a, b, c;
    fin >> n;
    for(int i = 0; i < n; i++){
        fin >> a >> b >> c;
        solu sol = nepitagora(a, b);
        solu bing = nepitagora(sol.d, c);
        if(bing.d != 1){
            int mul = c/sol.d;
            sol.k *= mul;
            sol.l *= mul;
        }else{
            sol.k = sol.l = 0;
        }
        fout << sol.k << " " << sol.l << "\n";
    }
    return 0;
}