Cod sursa(job #601620)

Utilizator alinhAlin H alinh Data 7 iulie 2011 11:00:32
Problema Algoritmul lui Euclid extins Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>

using namespace std;

int cmmdc(int a, int b)
{
    int r;
    while (b)
    {
        r = a % b;
        a = b;
        b = r;
    }
    return a;
}

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

ifstream fi;
ofstream fo;

int a, b, c;
int n;
int sd, sx, sy;

int main()
{
    fi.open("euclid3.in");
    fo.open("euclid3.out");
    fi >> n;
    for (int i=1; i<=n; i++)
    {
        fi >> a >> b >> c;
        euclid(a,b,&sd,&sx,&sy);
        if (c % sd)
            fo << "0 0\n";
        else
            fo << sx*c/sd << " " << sy*c/sd << "\n";
    }
    fi.close();
    fo.close();
    return 0;
}