Cod sursa(job #815244)

Utilizator TzenyTenescu Andrei Tzeny Data 16 noiembrie 2012 19:01:20
Problema Fractal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

ifstream fin("fractal.in");
ofstream fout("fractal.out");

int power(int a, int b)
{
	int or_a=a;
	if(b==0)
		return 1;
	if(b==1)
		return a;
	for(int i=1;i<b;i++)
		a*=or_a;
	return a;
}

int round_up(int a)
{
	int i=0;
	while(a>power(2,i))
		i++;
	return i;
}

int main()
{
	int x,y,k,square_size;
	
	fin>>k>>x>>y;
	
	square_size = round_up(x);
	if(round_up(y)>square_size)
		square_size = round_up(y);
	
	int steps = 1;
	for(int i=0;i<square_size;i++)
	{
		steps*=4;
	}
	
	int pow;
	
	pow = power(2,k);
	
	if(x<=pow/2)
	{
		if(y<=pow/2)
			steps-=3;
		else
			steps-=2;
	}
	if(x>=pow/2+1)
	{
		if(y>=pow/2+1)
			steps-=1;
		else
			steps--;
	}
	
	fout << steps;
}