Cod sursa(job #1761151)

Utilizator tudi98Cozma Tudor tudi98 Data 21 septembrie 2016 20:54:03
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;

#define FOR(i,a,b) for(int i = a; i <= b; i++)
#define ROF(i,a,b) for(int i = a; i >= b; i--)
#define Nmax 10000
#define pb push_back

void ExtendedGCD(int a,int b,int& d,int& x,int& y)
{
    if (b == 0)
    {
        d = a;
        x = 1;
        y = 0;
        return;
    }
    
    int x0,y0,c;
    ExtendedGCD(b,a%b,d,x0,y0);

    c = a/b;
    x = y0;
    y = x0 - c*y0;
}

int main()
{
    ifstream fin("euclid3.in");
    ofstream fout("euclid3.out");

    int n;
    fin >> n;
    FOR(i,1,n)
    {
        int a,b,c;
        fin >> a >> b >> c;
        int x,y,d;
        ExtendedGCD(a,b,d,x,y);
        if (c % d != 0)
            fout << "0 0\n";
        else
            fout << c/d * x << " " << c/d * y << "\n";
    }
}