Cod sursa(job #645346)

Utilizator johnny2008Diaconu Ion johnny2008 Data 9 decembrie 2011 13:10:43
Problema Algoritmul lui Euclid extins Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#include<iostream>
using namespace std;
int euclid(int a, int b)
{
	int c;
	while (b) {
		c = a % b;
		a = b;
		b = c;
	}
	return a;
}
int t,a,b,c;

void euclidext(int a,int b,int &x,int &y){
	if( b==0){
		x=1;
		y=0;
	}
	else{
		int x0,y0;
		euclidext(b, a % b,  x0, y0);
		x = y0;
		y = x0 - (a / b)*y0;
	}
}
int main(){
	ifstream f("euclid3.in");
	ofstream g("euclid3.out");
	f>>t;
	int i;
	for(i=1;i<=t;i++){
		f>>a>>b>>c;
		int d,x,y;
		d=euclid(a,b);
		
		if(c%d!=0){
			g<<"0 0\n";
		}
		else{
			euclidext(a,b,x,y);
			
			g<<x*(c/d)<<" "<<y*(c/d)<<'\n';
		}
	}
	return 0;
}