Cod sursa(job #401600)

Utilizator TrumpCardPopescu Silviu TrumpCard Data 22 februarie 2010 22:53:20
Problema Algoritmul lui Euclid extins Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
int euclid(int a, int b, int &x, int &y)
{
    if(b == 0) {
        x = 1;
        y = 0;
        return a;
    }
    else{
        int x0, y0, d;
        d = euclid(b, a%b, x0, y0);
        x = y0;
        y = x0 - (a/b) * y0;
        return d;
    }
}
int main()
{
    FILE *f1 = fopen("euclid3.in", "r");
    FILE *f2 = fopen("euclid3.out", "w");
    int T, i, a, b, c, d, x, y;
    fscanf(f1, "%d", &T);
    for(i = 0; i < T; i++) {
        fscanf(f1, "%d%d%d", &a, &b, &c);
        d = euclid(a, b, x, y);
        if (c%d !=0) {
            x = 0;
            y = 0;
        }
        else {
            x = x * (c/d);
            y = y * (c/d);
        }
        fprintf(f2, "%d %d\n", x, y);
    }
    fclose(f1);
    fclose(f2);
    return 0;
}