Pagini recente » Cod sursa (job #1230304) | Cod sursa (job #2866156) | Cod sursa (job #2422664) | Cod sursa (job #2111006) | Cod sursa (job #1297164)
#include <stdio.h>
int length(int n) {
if (n == 0)
return 0;
return (1 << (n + 1)) - 1;
}
int fractal(int n, int x, int y) {
if (n == 0)
return 0;
int midx = (1 << (n - 1)) - 1, midy = (1 << (n - 1)) - 1;
if (x <= midx && y <= midy)
return fractal(n - 1, y, x);
else if (x <= midx && y > midy)
return fractal(n - 1, x - midx, y) + length(n - 1) + 1;
else if (x > midx && y > midy)
return fractal(n - 1, x - midx, y - midy) + 2 * length(n - 1) + 2;
else
return fractal(n - 1, 2 * midy - y, midx - x) + 3 * length(n - 1) + 3;
}
int main()
{
FILE *in, *out;
in = fopen("fractal.in", "r");
out = fopen("fractal.out", "w");
int n, x, y;
fscanf(in, "%d %d %d", &n, &x, &y);
fprintf(out, "%d\n", fractal(n, x - 1, y - 1));
fclose(in);
fclose(out);
return 0;
}