Cod sursa(job #1232156)

Utilizator vladrochianVlad Rochian vladrochian Data 22 septembrie 2014 11:20:37
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
using namespace std;

int S;

ifstream fin("fractal.in");
ofstream fout("fractal.out");

void Solve(int K, int x, int y) {
	if (!K)
		return;
	int mid = 1 << (K - 1), area = mid * mid;
	if (x < mid) {
		if (y < mid) {
			Solve(K - 1, y, x);
		} else {
			S += 3 * area;
			Solve(K - 1, (1 << K) - y - 1, mid - x - 1);
		}
	} else {
		if (y < mid) {
			S += area;
			Solve(K - 1, x - mid, y);
		} else {
			S += 2 * area;
			Solve(K - 1, x - mid, y - mid);
		}
	}
}

int main() {
	int K, x, y;
	fin >> K >> x >> y;
	--x;
	--y;
	Solve(K, y, x);
	fout << S << "\n";
	return 0;
}