Cod sursa(job #1005656)
| Utilizator | Data | 5 octombrie 2013 14:19:55 | |
|---|---|---|---|
| Problema | Algoritmul lui Euclid extins | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <fstream>
using namespace std;
ifstream f("euclid3.in");
ofstream g("euclid3.out");
int euclid(int a,int b,int &x,int &y)
{
int r,flag=1;
do
{
r=a%b;
if(flag==1) x+=a/b;
else y+=a/b;
flag*=-1;
a=b;
b=r;
} while(b!=0);
return a;
}
int main()
{
int t,a,b,c,i,x,y,d,e;
f>>t;
for(i=1;i<=t;i++)
{
f>>a>>b>>c;
x=y=0;
d=euclid(a,b,x,y);
if(c%d==0)
{
e=c/d;
g<<x*e<<" "<<-y*e<<"\n";
}
else g<<"0 0\n";
}
f.close();
g.close();
return 0;
}
