Pagini recente » Cod sursa (job #1424994) | Cod sursa (job #1811298) | Cod sursa (job #1853237) | Cod sursa (job #2556705) | Cod sursa (job #552680)
Cod sursa(job #552680)
#include<cstdio>
int n,x,y,r;
void read()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%d%d",&n,&x,&y);
int aux=x;
x=y;
y=aux;
}
int solve(int gr,int lat,int x,int y)
{
if(gr==0)
return r;
if(x<=(lat>>1) && y<=(lat>>1))
return solve(gr-1,(lat>>1),y,x);
r+=(lat>>1)*(lat>>1);
if(x>(lat>>1) && y<=(lat>>1))
return solve(gr-1,(lat>>1),x-(lat>>1),y);
r+=(lat>>1)*(lat>>1);
if(x>(lat>>1) && y>(lat>>1))
return solve(gr-1,(lat>>1),x-(lat>>1),y-(lat>>1));
r+=(lat>>1)*(lat>>1);
return solve(gr-1,(lat>>1),lat-y+1,(lat>>1)-x+1);
}
int main()
{
read();
printf("%d\n",solve(n,(1<<n),x,y));
return 0;
}