Cod sursa(job #3341228)

Utilizator florinul1Iuhas Florin florinul1 Data 18 februarie 2026 16:57:37
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>

using namespace std;

const int INF=2e9;

void euclid_extins(int a,int b,int *c,int *x,int*y)
{
    if(!b)
    {
        *c=a;
        *x=1;
        *y=0;
        return;
    }
    int x0;
    euclid_extins(b,a%b,c,&x0,x);
    *y=x0-(a/b)**x;
}

int main()
{
    ifstream fin("euclid3.in");
    ofstream fout("euclid3.out");
    int a,b,c,x,y,n,i,d;
    long long X,Y;
    fin>>n;
    for(i=0;i<n;i++){
        fin>>a>>b>>c;
        euclid_extins(a,b,&d,&x,&y);

        if(c%d==0){
            X=1ll*x*c/d;
            Y=1ll*y*c/d;
            /*
            (x + k * b/d, y - k * a/d)
            */
//            while(X>INF){
//                X-=b/d;
//                Y+=a/d;
//            }
//            while(X<-INF){
//                X+=b/d;
//                Y-=a/d;
//            }

            fout<<X<<' '<<Y<<'\n';
        }
        else fout<<"0 0\n";
    }

    return 0;
}