Pagini recente » Cod sursa (job #831224) | Cod sursa (job #437920) | Cod sursa (job #1003518) | Cod sursa (job #1458231) | Cod sursa (job #461048)
Cod sursa(job #461048)
#include <cstdio>
const char FIN[] = "fractal.in";
const char FOU[] = "fractal.out";
int k, x, y, sol;
int frac ( int k, int x, int y )
{
if ( k == 1 )
if ( x == 1 )
return y - 1;
else
return 4 - y;
else
{
int l1 = 1 << ( k - 1 ), l2 = 1 << ( 2 * k - 2 ), l3 = 1 << k ;
if ( x > l1 && y <= l1 )
return 3 * l2 + frac ( k - 1 , l1 + 1 - y , l3 + 1 - x );
if ( x > l1 && y > l1 )
return 2 * l2 + frac ( k - 1 , x - l1 , y - l1 );
if ( x <= l1 && y > l1 )
return l2 + frac ( k - 1 , x , y - l1 );
if ( x <= l1 && y <= l1 )
return frac ( k - 1 , y , x );
}
}
int main()
{
freopen(FIN, "r", stdin);
freopen(FOU, "w", stdout);
scanf("%d %d %d", &k, &x, &y);
printf("%d", frac(k, x, y));
return 0;
}