Pagini recente » Cod sursa (job #1390411) | Cod sursa (job #3159305) | Cod sursa (job #2466182) | Cod sursa (job #2937467) | Cod sursa (job #766886)
Cod sursa(job #766886)
#include <cstdio>
using namespace std;
int fractal(int k, int y, int x)
{
if(k == 0)
return 0;
int newx, newy, aduna;
int n = (1 << k) / 2;
if(y <= n) {
if(x <= n) {
newy = x;
newx = n - (n - y + 1) + 1;
aduna = 0;
}
else {
newy = n - (x - n) + 1;
newx = n - y + 1;
aduna = 3 * n * n;
}
}
else {
if(x <= n) {
newy = y - n;
newx = x;
aduna = n * n;
}
else {
newy = y - n;
newx = x - n;
aduna = 2 * n * n;
}
}
return aduna + fractal(k - 1, newy, newx);
}
int k, x, y;
int main()
{
freopen ("fractal.in", "r", stdin);
freopen ("fractal.out", "w", stdout);
scanf("%d %d %d", &k, &x, &y);
printf("%d", fractal(k, y, x));
}