Cod sursa(job #2466917)

Utilizator modulopaulModulopaul modulopaul Data 3 octombrie 2019 11:21:13
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("euclid3.in");
ofstream fout("euclid3.out");
void eeuclid(int a,int b, int* c,int* x,int* y){
    if(b==0){
        *c=a;
        *x=1;
        *y=0;
    }
    else{
        int x0,y0;
        eeuclid(b,a%b,c,&x0,&y0);
        //cout<<y0<<'\n';
        //cout<<x0-(a/b)*y0;
        *x=y0;
        *y=x0-(a/b)*y0;
    }
}

int euclid(int a,int b){
    int c;
    while(b!=0){
        c=a%b;
        a=b;
        b=c;
    }
    return a;
}
int main(){
    int t;
    fin>>t;
    for(int i=1;i<=t;i++){
        int a,b,d;
        int c,x,y;
        //*x=1;
        //*y=0;
        fin>>a>>b>>c;
        d=euclid(a,b);
        if(c%d!=0){
            fout<<0<<' '<<0<<'\n';
        }
        else{
            //fout<<a<<' '<<b<<' '<<*c<<'\n';
            eeuclid(a,b,&d,&x,&y);
            fout<<x<<' '<<y<<'\n';
        }
    }
    return 0;
}