Cod sursa(job #657200)

Utilizator ionicaion ionica Data 5 ianuarie 2012 22:31:49
Problema Algoritmul lui Euclid extins Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
using namespace std;
long x1,x2,x3;
long yy1,y2,y3;
long r1,r2,r3;

long euclid(long a,long b,long &u,long&v,long&d)
{
	long u1,u2,u3,v1,v2,v3,c,r;
	u1=1;u2=0;
	v1=0;v2=1;
	while(b!=0)
	{
		c=a/b;
		r=a%b;
		if(r==0)break;
		u3=u1-c*u2;
		v3=v1-c*v2;
		
		u1=u2; u2=u3;
		v1=v2; v2=v3;
		
		a=b; b=r;
	}
	u=u3; v=v3; d=b;
}

int main()
{
	long a,b,c,e,d,u,w,c1,c2,c3,i,n,j,sa,sb;
	ifstream f("euclid3.in");
	ofstream g("euclid3.out");
	f>>n;
	for(j=1;j<=n;j++)
	{f>>a>>b>>c;
	
	sa=sb=1;
	
	if(a<0){sa=-1;a=-a;}
	if(b<0){sb=-1;b=-b;}
	
	euclid(a,b,u,w,d);
	
	if(c%d!=0)g<<"0 0\n";
	else 
	  {
	  u=u*(c/d); w=w*(c/d);
	  u=u*sa;
	  w=w*sb;
	  g<<u<<' '<<w<<'\n';
	  }
	}
}