Cod sursa(job #1394010)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 19 martie 2015 22:21:06
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>

int x, y;
int gcd(int a, int b) {
    if (!b) {
       x = 1;
       y = 0;
       return a;
    }
    int p = gcd(b, a % b);

    int aux = x;
    x = y;
    y = aux - y * (a / b);

    return p;
}
int main (void) {
    FILE *f, *g;
    int query;
    int a, b, c;
    int p;

    f = fopen("euclid3.in", "r");
    fscanf(f, "%d", &query);
    g = fopen("euclid3.out", "w");

    while (query--) {
        fscanf(f, "%d%d%d", &a, &b, &c);
        p = gcd(a, b);

        if (c % p)
            fputs("0 0\n", g);
        else {
            c /= p;
            fprintf(g, "%d %d\n", x * c, y * c);
        }
    }
    fclose(f);
    fclose(g);
    return 0;
}