Cod sursa(job #548041)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 6 martie 2011 22:45:08
Problema Algoritmul lui Euclid extins Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
# include <fstream.h>
ifstream f ("euclid3.in");
ofstream g ("euclid3.out");
int a,b,c,m[3][3],mm[3][3],k,i,x,y,t,q,r;

  


 void euclid ()
 {
	 k=0;
	 while (b)
	 {
	 q=a/b;
	 r=a%b;
	 a=b;
	 b=r;
	 mm[1][1]=m[1][1];
	 mm[1][2]=m[1][2];
	 mm[2][1]=m[2][1];
	 mm[2][2]=m[2][2];
	 
	 m[1][1]=mm[1][1]*q+mm[1][2];
	 m[1][2]=mm[1][1];
	 m[2][1]=mm[2][1]*q+mm[2][2];
	 m[2][2]=mm[2][1];
	 k++;
	 }
 }

int main ()
{
	
	f>>t;
	for (i=1;i<=t;i++)
	{
		m[1][1]=1;
	    m[2][2]=1;
		m[1][2]=0;
		m[2][1]=0;
		f>>a>>b>>c;
		euclid ();
		if (k%2==0)
		{
			x=m[2][2];
			y=-m[1][2];
		}
		else
		{
			x=-m[2][2];
			y=m[1][2];
		}
		x=x*c/a;
		y=y*c/a;
		if (c%a==0)
			g<<x<<" "<<y<<"\n";
		else
			g<<"0 0\n";
		
	}
	
	return 0;
}