Pagini recente » Cod sursa (job #2263757) | Cod sursa (job #1151260) | Cod sursa (job #2110840) | Cod sursa (job #677560) | Cod sursa (job #1278175)
#include <cstdio>
using namespace std;
long long T, i, a, b, c, x, y, D;
long long cmmdc(long long a, long long b) {
long long r;
while (b) {
r = a % b;
a = b;
b = r;
}
return a;
}
void euclid( long long a, long long b, long long &x, long long &y){
if( b == 0){
x = 1;
y = 0;
}
else{
long long x0,y0;
euclid(b, a % b , x0, y0);
x = y0;
y = x0 - (a / b) * y0;
}
}
int main()
{
freopen("euclid3.in","r",stdin);
freopen("euclid3.out","w",stdout);
scanf("%d",&T);
for(i = 1; i <= T; i ++){
scanf("%d%d",&a,&b); // citire
D = cmmdc(a,b); // cmmdc
if( c % D != 0) // daca c nu se imparte la cmmdc
printf("0 0\n");
else{
euclid(a,b,x,y);// aplicam algoritmu extins
printf("%d %d\n",x*(c/D),y*(c/D)); // af rez
}
}
return 0;
}