Cod sursa(job #174534)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 8 aprilie 2008 22:36:22
Problema Fractal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
//FRACTAL INFOARENA
#include <fstream>
using namespace std;

ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k,n;

int fractal(int x,int y,int p)
{
 	int fract=0;
      if (x==y==1||p==0) return 0;
      else
		if (x<=(p-1)/2)
      	{
       		if (y<=(p-1)/2)
            		return fractal(p-y,p-x,p/2);
	            if (y>(p-1)/2)
      	        	return 2*p+fractal(x-p,y,p/2);
	      }
		else
	      {
      	 	if (y>(p-1)/2)
            	  	return 4*p+fractal(x-p,y-p,p/2);
	            if (y<=(p-1)/2)
      	        	return 6*p+fractal(2*p-y,x,p/2);
	      }
}

int main(){
	int x,y,p,i;
	fin>>k>>x>>y;
      p=1;
      for (i=1;i<=k;i++)
         	p*=2;
      fout<<fractal(x,y,p/2);
      fout.close();
      return 0;
}