Pagini recente » Borderou de evaluare (job #2889644) | Cod sursa (job #3272985) | Cod sursa (job #3195523) | Autentificare | Cod sursa (job #568646)
Cod sursa(job #568646)
#include<stdio.h>
int K, x, y, rez = 0;
inline void Steps( int Ord, int X, int Y )
{
if( Ord )
{
int L = 1<<(Ord-1) ;
if( Y <= Ord && X <= Ord ) Steps( Ord-1, Y, X );
else if( Y <= Ord && X > Ord ) { rez += L*L; Steps( Ord-1, X-L, Y ); }
else if( Y > Ord && X > Ord ) { rez += 2*L*L; Steps( Ord-1, X-L, Y-L ); }
else if( Y > Ord && X <= Ord ) { rez += 3*L*L; Steps( Ord-1, 2*L-Y+1, L-X+1 ); }
}
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%d%d", &K, &x, &y);
Steps( K, y, x );
printf("%d\n", rez);
return 0;
}