Cod sursa(job #1762478)

Utilizator maria.nastaseNastase Maria maria.nastase Data 23 septembrie 2016 16:40:18
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <cstdlib>
using namespace std;

void cmmdc(long long int a, long long int b, long long int &x, long long int &y)
{
    if(b==0)
        x=1,y=0;
    else
    {
        long long int x1, y1;
        cmmdc(b, a%b, x1, y1);
        x=y1;
        y=x1-(a/b)*y1;
    }
}

int main()
{
    freopen("euclid3.in","r",stdin);
    freopen("euclid3.out","w",stdout);
    long long int n, a, b, c, x, y;
    scanf("%lld", &n);
    for(int i=0; i<n; i++)
    {
        long long int cm;
        scanf("%lld%lld%lld", &a, &b, &c);
        cmmdc(a, b, x, y);
        cm=a*x+b*y;
        if(c%cm!=0)
            printf("0 0\n");
        else
        {
            x=x*(c/cm);
            y=y*(c/cm);
            printf("%lld %lld\n",x,y);
        }
    }
    return 0;
}