Cod sursa(job #1194715)

Utilizator zsomkoKoman Zsombor zsomko Data 4 iunie 2014 18:08:57
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>

using namespace std;

FILE * in = fopen ("euclid3.in", "r");
FILE * out = fopen ("euclid3.out", "w");

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

int main()
{
    int t, a, b, c, d, x, y;
    fscanf(in, "%d", &t);
    for(int i=0; i<t; i++)
    {
        fscanf(in, "%d %d %d", &a, &b, &c);
        euclid(a, b, &d, &x, &y);
        if(c%d)
            fprintf(out, "0 0\n");
        else
            fprintf(out, "%d %d\n", c/d*x, c/d*y);
    }
    return 0;
}