Cod sursa(job #1680819)
Utilizator | Data | 9 aprilie 2016 09:56:19 | |
---|---|---|---|
Problema | Algoritmul lui Euclid extins | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.36 kb |
#include <fstream>
using namespace std;
ifstream f ("euclid3.in");
ofstream g ("euclid3.out");
void ex()
{
long a, b, c, aa, bb, r, q, s1, s2, aux, j=0;
f>>a>>b>>c;
if (b==0)
{
g<<c/a<<' '<<'0';
}
else
{
aa=a;
bb=b;
s2=1;
q=0;
s1=0;
do
{
r=a%b;
aux=s2;
s2=s1-q*s2;
s1=aux;
q=a/b;
//g<<++j<<'|'<<'\t'<<a<<'\t'<<b<<'\t'<<r<<'\t'<<q<<'\t'<<s1<<'\t'<<s2<<'\n';
a=b;
if (r) b=r;
}
while (r);
s1=(b-s2*aa)/bb;
//g<<b<<'\t'<<s2<<'\t'<<s1<<'\n';
if (c%b==0)
{
q=c/b;
g<<s2*q<<' '<<s1*q<<'\n';
}
else
{
g<<'0'<<' '<<'0'<<'\n';
}
}
}
int main()
{
int n;
f>>n;
while (n)
{
ex();
n--;
}
f.close();
g.close();
return 0;
}