Cod sursa(job #1206108)

Utilizator vladmatei.nfoVlad Matei vladmatei.nfo Data 8 iulie 2014 21:39:15
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("euclid3.in");
ofstream out("euclid3.out");
short t;
long long a[102];
long long b[102];
long long c[102];

void euclid(long long a, long long b, long long *d, long long *x, long long *y)
{
    if(b == 0)
    {
        *x = 1;
        *y = 0;
        *d = a;
    }
    else
    {
        long long x0,y0;
        euclid(b, a % b, d, &x0, &y0);
        *x = y0;
        *y = x0 - (a / b) * y0;
    }
}
void read()
{
    in >> t;
    for(short i = 1; i <= t; i++)
    {
        in >> a[i] >> b[i] >> c[i];
    }
}

void write()
{
    long long d,x,y;
    for(int i = 1; i <= t; i++)
    {
        euclid(a[i],b[i],&d,&x,&y);
        if(c[i] % d != 0)
        {
            out<<"0 0\n";
        }
        else
        {
            out<<x * (c[i] / d)<<" "<<y * (c[i] / d)<<"\n";
        }
    }
}
int main()
{
    read();
    write();
}