Cod sursa(job #2336673)

Utilizator Leonard123Mirt Leonard Leonard123 Data 5 februarie 2019 13:44:05
Problema Algoritmul lui Euclid extins Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.29 kb
///euclid extins cu pointeri:
#include<fstream>
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, *d,*x=new int,*y=new int,n;
    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<<(*x)*c/a<<' '<<(*y)*c/a<<'\n';
        else
            cout<<"0 0\n";
    }

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

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