Pagini recente » Cod sursa (job #2673451) | Cod sursa (job #1917457) | Cod sursa (job #1896907) | Cod sursa (job #2507825) | Cod sursa (job #1284777)
#include <cstdio>
using namespace std;
int arie( int x )
{
return x * x ;
}
int fractal( int x , int y , int ordin )
{
if ( ordin < 0 )
return 0 ;
int lung = 1 << ordin ;
if ( x <= lung && y <= lung )
return fractal ( y , x , ordin - 1 ) ;
else if ( x > lung && y <= lung )
return arie ( lung ) + fractal( x - lung , y , ordin - 1 ) ;
else if ( x > lung && y > lung )
return 2 * arie ( lung ) + fractal( x - lung , y - lung , ordin - 1 ) ;
else
return 3 * arie ( lung ) + fractal( ( lung << 1 ) - y + 1 , lung - x + 1 , ordin - 1 ) ;
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
int o, x , y ;
scanf("%d%d%d",&o,&x,&y);
printf("%d\n",fractal(x,y,o));
return 0;
}