Cod sursa(job #798922)

Utilizator dyu_91gmLascu Diana-Sabina dyu_91gm Data 17 octombrie 2012 16:28:39
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<fstream>
#include<stdio.h>

using namespace std;
 long a, b, c, d, x0, y0;

void euclid(long a, long b, long *d, long *x, long *y)
    {

        if(b==0)
            {
                *d=a;
                *x=1;
                *y=0;
            }
        else
            {
            long x0, y0;
            euclid(b, a%b, d, &x0, &y0);
            *x=y0;
            *y=x0-(a/b)*y0;
            }
    }

int main()
{
    int t, i;

    FILE *f =fopen("euclid3.in", "r");
    FILE *g = fopen("euclid3.out", "w");

    fscanf(f, "%d", &t);
    for(i=1; i<=t; i++)
        {
            fscanf(f, "%ld %ld %ld", &a, &b, &c);
            euclid(a, b, &d, &x0, &y0);

            if(!(c%d))
                fprintf(g, "%ld %ld\n", x0*(c/d), y0*(c/d));
            else
                fprintf(g,"0 0\n");
        }

    fclose(f);
    fclose(g);

    return 0;
}