Pagini recente » Cod sursa (job #778942) | Autentificare | Cod sursa (job #1615565) | Cod sursa (job #174034) | Cod sursa (job #3357359)
#include<stdio.h>
#include<stdlib.h>
long long euclid(long long a,long long n,long long *x,long long *y)
{
if(n==0)
{
*x=1;
*y=0;
return a;
}
long long x1,y1;
long long d=euclid(n,a%n,&x1,&y1);
*x=y1;
*y=x1-(a/n)*y1;
return d;
}
int main()
{
FILE *fin=fopen("euclid3.in","r");
FILE *fout=fopen("euclid3.out","w");
if (fin == NULL || fout == NULL) {
perror("Eroare la deschiderea fisierelor");
return 1;
}
int T;
if(fscanf(fin,"%d",&T)!=1)
{
printf("citire incorecta\n");
return 1;
}
for(int i=0;i<T;i++)
{
long long a,b,c;
if(fscanf(fin,"%lld %lld %lld",&a,&b,&c)!=3)
{
printf("citire incorecta\n");
return 1;
}
long long x,y;
long long d=euclid(llabs(a),llabs(b),&x,&y);
if(a<0)
x=-x;
if(b<0)
y=-y;
if(c%d!=0)
fprintf(fout," 0 0\n");
else
{
long long factor=c/d;
x=x*factor;
y=y*factor;
fprintf(fout,"%lld %lld\n",x,y);
}
}
fclose(fin);
fclose(fout);
return 0;
}