Cod sursa(job #1973584)

Utilizator Eduard663676Ghiuzan Eduard Eduard663676 Data 25 aprilie 2017 14:42:58
Problema Fractal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream.h>
#include <math.h>
int x,y,nrpasi;
int v[5]={0,1,2,3,4};     // initializarea vectorului cu cadrane
int cadr(int k,int q){   // calculul cadranului
	if(x<=q/2)
		if(y<=q/2)
			return v[1];
		else
			return v[4];
	else
		if(y<=q/2)
			return v[2];
		else
			return v[3];
}
int main (){
	int k,q,aux,c;
	cin>>k>>x>>y;
	while(k>=1){
		q=pow(2,k);
		if(x>q)      // ajustarea coordonatei x
			x/=2;
		if(y>q)      // ajustarea coordonatei y
			y/=2;
		c=cadr(k,q);
		if(c==1){       // ajustarea cadranului I
			aux=v[2];
			v[2]=v[4];
			v[4]=aux;
		}
		if(c==4){      // ajustarea cadranului IV
			aux=v[1];
			v[1]=v[3];
			v[3]=aux;
		}
		k--;    // micsorarea ordinului
		nrpasi=nrpasi+((pow(2,2*k))*(c-1));     // calcularea numarului de pasi
	}
	cout<<nrpasi;
}