Pagini recente » Cod sursa (job #16951) | Cod sursa (job #181015) | Cod sursa (job #744088) | Cod sursa (job #1469847) | Cod sursa (job #1132167)
#include <iostream>
#include<stdio.h>
using namespace std;
FILE *f,*g;
int main()
{
int i,t,a,b,c,a1,a2,b1,b2,aux,aju,r1,r2,ss;
f=fopen("euclid3.in","r");
g=fopen("euclid3.out","w");
fscanf(f,"%d",&t);
for(i=1;i<=t;i++)
{
fscanf(f,"%d%d%d",&a,&b,&c);
bool as=1,bs=1,cs=1;
if (a<0) {a=-a;as=0;}
if (b<0) {b=-b;bs=0;}
if (c<0) {c=-c;cs=0;}
b1=1;a1=0;b2=0;a2=1;
r1=b;r2=a;
while(r2>0)
{
aux=r1/r2;
aju=r1%r2;
ss=b1;b1=b2;b2=ss-b2*aux;
ss=a1;a1=a2;a2=ss-a2*aux;
r1=r2;
r2=aju;
}
if (c%r1!=0) fprintf(g,"0 0\n");
else
{
long long qq,ww;
qq=(long long)b1*(c/r1);
ww=(long long)a1*(c/r1);
ww%=b;
qq=((long long)c-ww*a)/b;
if (as^cs) ww=-ww;
if(bs^cs) qq=-qq;
fprintf(g,"%lld %lld\n",ww,qq);
}
}
return 0;
}