Pagini recente » Cod sursa (job #153995) | Cod sursa (job #3264640) | Cod sursa (job #227509) | Cod sursa (job #3286931) | Cod sursa (job #3283209)
#include <iostream>
#include <bits/stdc++.h>
#define int long long int
using namespace std;
ifstream fin ("euclid3.in");
ofstream fout ("euclid3.out");
int mod = 1000000007;
vector<int> cifre;
struct nr{
int a,b;
};
pair<int,nr> euclid_extins(int a, int b, nr Va, nr Vb)
{
if(b==0)
return {a,Va}; // returneaza cmmdc si V(d)
int catul,rest;
catul=a/b;
rest=a%b;
nr Vr; // Vr = Va*q - Vb, care vine din Va = Vb*catul + V_rest teorema impartrii cu rest
Vr.a = Va.a * catul - Vb.a;
Vr.b = Va.b * catul - Vb.b;
return euclid_extins(b,rest,Vb,Vr);
}
signed main()
{
int n,m,i,j,k,t,q,minim,maxim,suma,a,b,c,d;
pair<int,nr> raspuns;
nr Va,Vb;
fin>>t;
while(t--)
{
fin>>a>>b>>c;
if(b>a)
swap(a,b);
Va.a=1;
Va.b=0;
Vb.a=0;
Vb.b=1;
raspuns = euclid_extins(a,b,Va,Vb);
d = raspuns.first;
if(c%d==0)
{
fout<<raspuns.second.a * c/d << ' ' << raspuns.second.b * c/d << '\n';
}
else
fout<<"0 0\n";
}
return 0;
}