Pagini recente » Cod sursa (job #3201309) | Cod sursa (job #3251890) | Cod sursa (job #40351) | Cod sursa (job #14435) | Cod sursa (job #2986352)
#include <fstream>
using namespace std;
int Solve(int k, int r, int c) {
if (k == 0) {
return 0;
}
int half = 1 << (k - 1);
int area = half * half - 1;
if (r <= half && c <= half) {
return Solve(k - 1, c, r);
}
if (r > half && c <= half) {
return area + 1 + Solve(k - 1, r - half, c);
}
if (r > half && c > half) {
return 2 * (area + 1) + Solve(k - 1, r - half, c - half);
}
return 3 * (area + 1) + Solve(k - 1, 2 * half - c + 1, half - r + 1);
}
int main() {
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, c, r;
fin >> k >> c >> r;
auto res = Solve(k, r, c);
fout << res << "\n";
return 0;
}