Pagini recente » Cod sursa (job #837923) | Cod sursa (job #17580) | Cod sursa (job #1702160) | Cod sursa (job #1432906) | Cod sursa (job #709820)
Cod sursa(job #709820)
#include <cstdio>
using namespace std;
inline int Fractal (int K, int X, int Y)
{
if (K==0) return 0;
int Mid=1<<(K-1), Size=Mid*Mid-1;
if (X<=Mid and Y<=Mid)
{
return Fractal (K-1, Y, X);
}
if (X>Mid and Y<=Mid)
{
return Size+1+Fractal (K-1, X-Mid, Y);
}
if (X>Mid and Y>Mid)
{
return 2*Size+2+Fractal (K-1, X-Mid, Y-Mid);
}
if (X<=Mid and Y>Mid)
{
return 3*Size+3+Fractal (K-1, 2*Mid-Y+1, Mid-X+1);
}
return 0;
}
int main ()
{
freopen ("fractal.in", "r", stdin);
freopen ("fractal.out", "w", stdout);
int K, X, Y; scanf ("%d %d %d", &K, &X, &Y);
printf ("%d\n", Fractal (K, Y, X));
return 0;
}