Cod sursa(job #933057)

Utilizator andreiagAndrei Galusca andreiag Data 29 martie 2013 16:01:39
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <iostream>
#include <utility>

using namespace std;


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

int main()
{
    freopen("euclid3.in", "r", stdin);
    freopen("euclid3.out", "w", stdout);

    int T;
    scanf("%d", &T);
    printf("%d\n", T);

    int a,b,c;
    int d,x,y;
    for(int i = 0; i < T; ++i)
    {
        scanf("%d %d %d", &a, &b, &c);
        gcd_ext(a, b, d, x, y);
        if(c % d != 0) printf("%d %d\n", 0, 0);
        else printf("%d %d\n", x*(c/d), y*(c/d));
    }

    return 0;
}