Cod sursa(job #2924831)

Utilizator cezarinfoTulceanu Cezar cezarinfo Data 11 octombrie 2022 18:23:06
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include<cstdio>
#include<algorithm>
using namespace std;
FILE*in=fopen("euclid3.in","r");
FILE*out=fopen("euclid3.out","w");
int t,i,a,b,c,r1,r2,rap;
struct sol
{
    int d,x,y;
};
sol ras;
sol euclid(int a,int b)
{
    int x1=1,x2=0,y1=0,y2=1,c;
    while(b!=0)
    {
        c=a/b;
        x1=x1-c*y1;
        x2=x2-c*y2;
        a=a%b;
        swap(a,b);
        swap(x1,y1);
        swap(x2,y2);
    }
    ras.d=a;
    ras.x=x1;
    ras.y=x2;
    return ras;
}
int main()
{
    fscanf(in,"%d",&t);
    for(i=1;i<=t;i++)
    {
        fscanf(in,"%d%d%d",&a,&b,&c);
        ras=euclid(a,b);
        if(c%ras.d==0)
        {
            rap=c/ras.d;
            r1=ras.x*rap;
            r2=ras.y*rap;
            fprintf(out,"%d %d\n",r1,r2);
        }
        else
        {
            fprintf(out,"0 0\n");
        }
    }
}