Cod sursa(job #357796)

Utilizator proflaurianPanaete Adrian proflaurian Data 20 octombrie 2009 19:19:40
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
int i,j,k,sol(int K,int X,int Y);
void read(),solve();
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	freopen("fractal.in","r",stdin);
	freopen("fractal.out","w",stdout);
	scanf("%d%d%d",&k,&i,&j);
}
void solve()
{
	printf("%d\n",sol(k,j,i));
}
int sol(int K,int X,int Y)
{
	int p2,p4;p2=1<<(K-1);p4=p2*p2;
    if(!K) return 0;
    if(X<=p2)
	{
		if(Y<=p2)
			return sol(K-1,Y,X);
		return 3*p4+sol(K-1,2*p2+1-Y,p2+1-X);
	}
    if(Y<=p2)
		return p4+sol(K-1,X-p2,Y);
    return 2*p4+sol(K-1,X-p2,Y-p2);
}