Cod sursa(job #3357241)

Utilizator Olariu_MarioOlariu Mario Andrei Olariu_Mario Data 7 iunie 2026 14:59:22
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <stdio.h>

void euclid(long long a,long long b,long long *d,long long *x,long long *y)
{
    if(b==0) 
    {
        *d=a;
        *x=1;
        *y=0;
        return;
    } 
    else
    {
        long long x0,y0;
        euclid(b,a%b,d,&x0,&y0);
        *x=y0;
        *y=x0-(a/b)*y0;
    }
}

int main()
{
    FILE *file=fopen("euclid3.in","r");
    FILE *output=fopen("euclid3.out","w");
    if (file == NULL)
    {
        fprintf(stderr, "Eroare deschidere fisier intrare.\n");
        return 1;
    }
    if (output == NULL)
    {
        fprintf(stderr, "Eroare deschidere fisier iesire.\n");
        fclose(file);
        return 1;
    }
    long long a,b,x,y,c,d;
    int t;
    fscanf(file,"%d",&t);
    for(int i=0;i<t;i++)
    {
        fscanf(file,"%lld %lld %lld", &a, &b, &c);
        euclid(a,b,&d,&x,&y);
        if(c%d!=0)
        {
            fprintf(output,"0 0\n");
        }
        else
        {
            long long f=c/d;
            long long x1=x*f;
            long long y1=y*f;   
            fprintf(output,"%lld %lld\n",x1,y1);
        }
    }
    fclose(file);
    fclose(output);
    return 0;
}