Cod sursa(job #2336645)

Utilizator Leonard123Mirt Leonard Leonard123 Data 5 februarie 2019 13:10:54
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.27 kb
///euclid extins cu pointeri:
/*#include<iostream>
using namespace std;

//ifstream cin("euclid3.in");
//ofstream cout("euclid3.out");


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;
    }
}

int main()
{
    int a,b,c,o,p, *d,*x,*y,n;

    x=&o; y=&p; d=&a;
    cin>>n;
    for(int i=1; i<=n; i++){
        cin>>a>>b>>c;
        euclid(a,b,d,x,y);
        if(c%a==0)
            cout<<1ll*o*c/a<<' '<<1ll*p*c/a<<'\n';
        else
            cout<<"0 0\n";
    }

    return 0;
}*/
///euclid extins fara pointeri:
#include<fstream>
using namespace std;
ifstream cin("euclid3.in");
ofstream cout("euclid3.out");
int euclid(int a, int b, int &x, int &y){
    if(b==0){
        x=1;
        y=0;
        return a;
    }
    int x0, y0,d;
    d=euclid(b,a%b,x0,y0);
    x=y0;
    y=x0-a/b*y0;
    return d;
}

int main(){
    int  a,b,c,x,y,n,d;
    cin>>n;
    while(n){
    cin>>a>>b>>c;
    d=euclid(a,b,x,y);
    if(c%d==0)
        cout<<1ll*x*c/d<<' '<<1ll*y*c/d<<'\n';
    else
        cout<<"0 0\n";
    n--;
    }
    return 0;
}