Cod sursa(job #3250686)

Utilizator alecu2008Alecu Alexandru alecu2008 Data 22 octombrie 2024 23:51:57
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <bits/stdc++.h>
using namespace std;

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




#define maxim 2000000000
#define minim -2000000000
#define il long long

il x,y,aux,d;


void eu(il a,il b){
if(!b){
    x=1;
    y=0;
    d=a;
}
else{
    eu(b,a%b);
    aux=x;
    x=y;
    y=aux-a/b*y;

}




}




int main()
{
    il t,a,b,c,sc;
    fin>>t;
    for(int i=1;i<=t;i++){
        sc=0;
        fin>>a>>b>>c;
        if(b>a){swap(a,b);sc=1;}
        eu(a,b);
        if(c%d==0){
            while(x<minim||x>maxim||y<minim||y>maxim){
                x=x-b/d;
                y=y-a/d;
            }
            if(sc)
            fout<<y*c/d<<" "<<x*c/d<<'\n';
            else fout<<x*c/d<<" "<<y*c/d<<'\n';
        }
        else fout<<0<<" "<<0<<'\n';
    }

}