Pagini recente » Cod sursa (job #2765327) | Cod sursa (job #2476284) | Cod sursa (job #3004758) | Cod sursa (job #542861) | Cod sursa (job #2489329)
#include <bits/stdc++.h>
using namespace std;
long long pw2[100];
int divide(int x, int y, int dim) {
if (dim == 0) {
return 0;
}
int len = pw2[dim -1];
if (x <= len && y <= len ) {
return divide(y, x, dim - 1);
}
if (x > len && y <= len) {
return len * len + divide(x - len, y, dim - 1);
}
if (x > pw2[dim -1] && y > len) {
return 2 * len * len + divide(x - len, y - len, dim - 1);
}
return 3 * len * len + divide( 2 * len - y + 1, len - x + 1, dim - 1);
}
int main()
{
ifstream f("fractal.in");
ofstream g("fractal.out");
pw2[0] = 1;
int x, y, k;
f >> k >> x >> y;
for (int i = 1; i <= 30; i++) {
pw2[i] = 2 * pw2[i - 1];
//cout << pw2[i] << endl;
}
g << divide(y, x, k);
}