Cod sursa(job #956677)

Utilizator radu33Nesiu Radu radu33 Data 3 iunie 2013 17:03:20
Problema Algoritmul lui Euclid extins Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<iostream>
#include<assert.h>
#include<fstream>
using namespace std;	
ifstream f("euclid3.in");
ofstream g("euclid3.out");

void euclid(int a, int b, int d, int &x, int &y)
{
    if (b == 0) {
        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;
	
f>>T;
for (; T; T--)
	{
		int A, B, C;
		f>>A>>B>>C;

		assert( -1000000000 <= A && A <= 1000000000 );
		assert( -1000000000 <= B && B <= 1000000000 );
		assert( -2000000000 <= C && C <= 2000000000 && C != 0 );
		int D, X, Y;
		euclid(A,B,D,X,Y);
		
		if (C % D)
			g<<"0 0"<<"\n";
		else
			g<<X*(C/D)<<" "<<Y*(C / D);
	}

return 0;
}