Cod sursa(job #470429)

Utilizator Anonymous1010Chilivercu Cristian Anonymous1010 Data 13 iulie 2010 19:11:43
Problema Fractal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>

int k,x,y,i,aux,sol,ok;

int main()
{
	freopen("fractal.in","r",stdin);
	freopen("fractal.out","w",stdout);
	
	scanf("%d %d %d",&k,&y,&x);
	
	for(;k;k--)
	{
		i=1<<(k-1);
		ok=0;
		
		if(x<=i&&y<=i)
		{
			aux=x;
			x=y;
			y=i+1-aux;
			y=i+1-y;
			ok=1;
		}
		if(x<=i&&y>i&&!ok)
		{
			sol+=3*i*i;
			y-=i;
			aux=x;
			x=i+1-y;
			y=x;
			y=i+1-y;
			ok=1;
		}
		if(x>i&&y>i&&!ok)
		{
			sol+=2*i*i;
			ok=1;
			x-=i;
			y-=i;
		}
		if(x>i&&y<=i&&!ok)
		{
			sol+=i*i;
			x-=i;
		}
	}
	
	printf("%d",sol);
	
	return 0;
}