Pagini recente » Cod sursa (job #363743) | Cod sursa (job #242805) | Cod sursa (job #3258040) | Cod sursa (job #363758) | Cod sursa (job #87812)
Cod sursa(job #87812)
#include<stdio.h>
#include<math.h>
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
long nr =0,n,a,b,i,poz,x,y;
scanf("%ld %ld %ld",&n,&a,&b);
for(i=n;i>=2;i--)
{
x = pow(2,i-1);
y = pow(2,i-1);
if(a <= x && b <= y) {continue;}
if(a > x && b <= y) {poz = 2;}
if(a > x && b > y) { poz = 4;}
if(a <= x && b >y) { poz =4;}
long difx,dify;
if( poz == 2)
{
nr+= x*x;
a -=x;
difx = a - 1;
dify = b - 1;
a = dify;
b = difx;
continue;
}
if( poz == 3)
{
nr+= x*x*2;
a -= x;
b -= y;
difx = a-1;
dify = b-1;
a = dify;
b = difx;
continue;
}
if(poz == 4)
{
nr += x*x*3;
a = x-a+1;
b = x*2-b+1;
continue;
}
}
nr += (a==1 && b==2);
nr += 2*(a==2 && b==2);
nr += 3*(a==2 && b==1);
printf("%ld\n",nr);
return 0;
}