Pagini recente » Cod sursa (job #3218889) | Cod sursa (job #3171478) | Cod sursa (job #567419) | Cod sursa (job #952534) | Cod sursa (job #468360)
Cod sursa(job #468360)
#include <stdio.h>
int k, x, y, sol;
inline int get_cadran(int x, int y, int val) {
if (x <= val && y <= val)
return 0;
if (x <= val && y > val)
return val * val;
if (x > val && y > val)
return 2 * val * val;
if (x > val && y <= val)
return 3 * val * val;
}
int main() {
freopen("fractal.in", "r", stdin);
freopen("fractal.out", "w", stdout);
scanf("%d %d %d", &k, &x, &y);
while (k > 0) {
int rotation = 0, val = 1 << (k - 1);
if (x <= val && y <= val)
rotation = 3;
if (x > val && y <= val)
rotation = 1;
sol += get_cadran(x, y, val);
if (x > val)
x -= val;
if (y > val)
y -= val;
for (int i = 1; i <= rotation; i++) {
int NewX = y;
int NewY = val - x + 1;
x = NewX; y = NewY;
}
if (rotation)
x = val - x + 1;
k--;
}
printf("%d\n", sol);
return 0;
}