Cod sursa(job #1695010)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 26 aprilie 2016 14:16:51
Problema Algoritmul lui Euclid extins Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.74 kb
# include <stdio.h>
# include <stdlib.h>

int cmmdc( int a, int b, int * x, int * y ) {
    if ( !b ) {
        *x = 1;
        *y = 0;
        return a;
    }

    int x0, y0, d;
    d = cmmdc( b, a % b, &x0, &y0 );

    *x = y0;
    *y = x0 - ( a / b ) * y0;
    return d;
}

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

    int t, i, a, b, c, d, x, y;

    fscanf( fin, "%d", &t );

    for ( i = 0; i < t; i ++ ) {
        fscanf( fin, "%d%d%d", &a, &b, &c );

        d = cmmdc( a, b, &x, &y );

        if ( c % d )
            fprintf( fout, "0 0\n" );
        else
            fprintf( fout, "%d %d\n", x * ( c / d ), y * ( c / d ) );
    }

    fclose( fin );
    fclose( fout );

    return 0;
}