Cod sursa(job #3134879)

Utilizator Coconut37Valentin Maria Coconut37 Data 31 mai 2023 17:58:14
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <stdio.h>
#include <stdlib.h>

int euclid(int a, int b, int* x, int* y)
{
    if (b == 0)
    {
        *x = 1;
        *y = 0;
        return a;
    }
    else
    {
        int x1, y1, d;
        d = euclid(b, a % b, &x1, &y1);
        *x = y1;
        *y = x1 - a / b * y1;
        return d;
    }
}

int main() {

    int T, a, b, c, d, x, y;
    FILE* fin, * fout;
    fin = fopen("euclid3.in", "rt");
    fout = fopen("euclid3.out", "wt");
    if (fin == NULL || fout == NULL)
    {
        printf("Eroare");
        return 0;
    }
    fscanf(fin, "%d", &T);
    for (int i = 0; i < T; ++i)
    {
        fscanf(fin, "%d %d %d", &a, &b, &c);
        d = euclid(a, b, &x, &y);
        if (c % d)
            fprintf(fout, "0 0\n");
        else
            fprintf(fout, "%d %d\n", x * (c / d), y * (c / d));
    }
    return 0;
}