Pagini recente » Cod sursa (job #931149) | Cod sursa (job #2166514) | Cod sursa (job #3137235) | Cod sursa (job #1994592) | Cod sursa (job #2147766)
#include<cstdio>
int rasp;
int calc(int k,int x,int y){
if (k==1){
if (x==1 && y==1)
return 0;
if (x==1 && y==2)
rasp+=3;
if (x==2 && y==1)
rasp++;
if (x==2 && y==2)
rasp+=2;
return 0;}
if (x<=(1<<(k-1)) && y<=(1<<(k-1))){
calc(k-1,y,x);
return 0;}
if (x>(1<<(k-1)) && y<=(1<<(k-1))){
rasp=rasp+(1<<(k-1))*(1<<(k-1));
calc(k-1,x-(1<<(k-1)),y);}
if (x>(1<<(k-1)) && y>(1<<(k-1))){
rasp=rasp+2*(1<<(k-1))*(1<<(k-1));
calc(k-1,x-(1<<(k-1)),y-(1<<(k-1)));}
if (x<=(1<<(k-1)) && y>(1<<(k-1))){
rasp=rasp+3*(1<<(k-1))*(1<<(k-1));
calc(k-1,(1<<k)-y+1,(1<<(k-1))-x+1);}
return 0;}
int main(){
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
int k,x,y;
scanf("%d%d%d",&k,&x,&y);
calc(k,y,x);
printf("%d\n",rasp);
return 0;}