Pagini recente » Cod sursa (job #1715563) | Cod sursa (job #1316058) | Cod sursa (job #135961) | Cod sursa (job #1387688) | Cod sursa (job #403192)
Cod sursa(job #403192)
#include <stdio.h>
int k, x, y, sol;
void fractal(int x, int y, int k) {
int m = (1 << (k-1));
if (k == 1) {
if (x == 2 && y == 1) sol += 1;
if (x == 2 && y == 2) sol += 2;
if (x == 1 && y == 2) sol += 3;
}
else {
if (x <= m && y <= m) {
fractal(y, x, k-1);
//fractal(x, y, k-1);
}
if (x > m && y <= m) {
sol += m * m;
fractal(x-m, y, k-1);
}
if (x > m && y > m) {
sol += 2 * m * m;
fractal(x-m, y-m, k-1);
}
if (x <= m && y > m) {
sol += 3 * m * m;
//y2 = x; x2 = 2 * m - y + 1;
//fractal(m-y+1, x, k-1);
fractal(2*m-y+1, m-x+1, k-1);
}
}
}
int main() {
FILE *f = fopen("fractal.in", "r");
FILE *g = fopen("fractal.out", "w");
fscanf(f, "%d %d %d", &k, &x, &y);
fractal(y, x, k);
fprintf(g, "%d", sol);
fclose(f); fclose(g);
return 0;
}