Pagini recente » Cod sursa (job #2122430) | Cod sursa (job #2681499) | Cod sursa (job #436364) | Cod sursa (job #2248386) | Cod sursa (job #1110377)
#include <cstdio>
#include <cstdint>
#include <algorithm>
using namespace std;
int main()
{
int64_t a,s=0,a2;
int k,x,y,cx;
freopen ("fractal.in","r",stdin);
freopen ("fractal.out","w",stdout);
scanf("%d %d %d",&k,&y,&x);
a=1<<k;
while(k)
{
a2=a/2;
if(x>a2 && y>a2)
{
x-=a2;y-=a2;
s+=2*(1<<(k-1)*2);
}
else if(x<=a2 && y<=a2)
{
swap(x,y);
}
else if(x>a2 && y<=a2)
{
x-=a2;
s+=1<<(k-1)*2;
}
else if(x<=a2 && y>a2)
{
cx=x;x=a-y+1;
y=a2-cx+1;
s+=3*(1<<(k-1)*2);
}
a>>=1;
k--;
}
printf("%I64d",s);
return 0;
}