Cod sursa(job #3228148)

Utilizator thek0derHorja Razvan thek0der Data 6 mai 2024 13:01:44
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

int gcd(int A, int B, int *X, int *Y) {
    if (B == 0) {
        *X = 1;
        *Y = 0;
        return A;
    }

    int X0, Y0, D;
    D = gcd(B, A % B, &X0, &Y0);
    
    *X = Y0;
    *Y = X0 - (A / B) * Y0;
    return D;
}

int main() {
    FILE *in = fopen("euclid3.in", "r");
    FILE *out = fopen("euclid3.out", "w");

    int T;
    fscanf(in, "%d", &T);

    while (T--) {
        int A, B, C;
        fscanf(in, "%d %d %d", &A, &B, &C);

        int D, X, Y;
        D = gcd(A, B, &X, &Y);
        
        if (C % D) fprintf(out, "0 0\n");
        else fprintf(out, "%d %d\n", X * (C / D), Y * (C / D));
    }

    fclose(in);
    fclose(out);

    return 0;
}