Cod sursa(job #2169741)

Utilizator catalinlupCatalin Lupau catalinlup Data 14 martie 2018 17:05:24
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <bits/stdc++.h>
#define INFILE "euclid3.in"
#define OUTFILE "euclid3.out"
using namespace std;
ifstream in(INFILE);
ofstream out(OUTFILE);
void euclid(int a, int b, int *d, int *x, int *y)
{
    if (b == 0) {
        *d = a;
        *x = 1;
        *y = 0;
    } else {
        int x0, y0;
        euclid(b, a % b, d, &x0, &y0);
        *x = y0;
        *y = x0 - (a / b) * y0;
    }
}
void euclid3(int a,int b,int &d,int&x,int&y){
    if(b==0){
        d=a;
        x=1;
        y=0;
    }
    else{
        int x0,y0;
        euclid3(b,a%b,d,x0,y0);
        x=y0;
        y=x0-(a/b)*y0;
    }
}

int main(){
    int T;
    in>>T;
    for(int i=1;i<=T;i++){
        int a,b,c;
        in>>a>>b>>c;
        //cout<<a<<" "<<b<<" "<<c<<" ";
        int d;
        int x,y;
        euclid3(a,b,d,x,y);
        //cout<<d<<"\n";
        if(c%d!=0){
            out<<0<<" "<<0<<"\n";
            continue;
        }
        //cout<<x<<" "<<y;
        //cout<<c/d<<"\n";
        out<<x*(c/d)<<" "<<y*(c/d)<<"\n";
    }
    return 0;
}