Pagini recente » Monitorul de evaluare | Autentificare | Cod sursa (job #1177123) | Cod sursa (job #2790189) | Cod sursa (job #2790191)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("euclid3.in");
ofstream fout ("euclid3.out");
int n;
long long a, b, c, x, y, q, x0, y0;
vector <pair <int,int>> sol;
int cmmdc(int a, int b)
{
pair <int,int> t;
t.first=a;
t.second=b;
sol.push_back(t);
if (b!=0)
return cmmdc(b,a%b);
return a;
}
int main()
{
fin >> n;
for (int i=0; i<n; ++i)
{
fin >> a >> b >> c;
sol.erase(sol.begin(),sol.end());
int cm=cmmdc(a,b);
int m=sol.size();
if (c%cm==0)
{
x0=c/sol[m-1].first;
y0=0;
for (int i=m-2; i>=0; --i)
{
x=y0;
y=x0-y0*(sol[i].first/sol[i].second);
x0=x;
y0=y;
}
fout << x << " " << y << "\n";
}
else
fout << "0 0\n";
}
return 0;
}