Cod sursa(job #716365)

Utilizator GrimpowRadu Andrei Grimpow Data 18 martie 2012 18:18:57
Problema Fractal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream.h>
#include<math.h>
/*using namespace std;*/

long k,x,y,cadran,pas;

void det_cadran()
{
 if (x>=1 && x<=pow(2,k-1))
	 {
	  if (y>=1 && y<=pow(2,k-1))
		 cadran=1; else
		 cadran=2;
	 } else
	 {
	  if (y>=1 && y<=pow(2,k-1))
		 cadran=4; else
		 cadran=3;
	 }
}

void incrementare()
{
 pas=pas + (pow(2,2*k-2) * (cadran-1));
}

void schimbare()
{
 long x2,y2;

 if (cadran==1)
	 {
	  x2=y;
	  y2=x;
	 } else
	 if (cadran==2)
		 {
		  x2=x;
		  y2=y-pow(2,k-1)/*x-4*/;
		 } else
		 if (cadran==3)
			 {
			  x2=x-pow(2,k-1);
		      y2=y-pow(2,k-1)/*x-4*/;
			 } else
			 {
			  x2=pow(2,k-1)-y+1/*4-y+1*/;
			  y2=pow(2,k)-x+1/*8-x+1*/;
			 }

 x=x2;
 y=y2;

 k--;
}

int main()
{
 ifstream fin("fractal.in");
 fin>>k>>x>>y;

 while (k!=0)
	 {
	  det_cadran();
	  incrementare();
	  schimbare();
	 }

 ofstream fout("fractal.out");
 fout<<pas;

 fin.close();
 fout.close();

 return 0;
}