Cod sursa(job #2017813)

Utilizator mihai.alphamihai craciun mihai.alpha Data 2 septembrie 2017 17:24:04
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
ifstream in("fractal.in");
ofstream out("fractal.out");
int p[17], k, x, y, pasi, a, b, i;
void fractal(int k, int x, int y) {
	if (k > 0) {
		if (x <= p[k - 1] && y <= p[k - 1]) {
			fractal(k - 1, y, x);
		}
		if (x > p[k - 1] && y <= p[k - 1]) {
			pasi += p[k - 1] * p[k - 1];
			fractal(k - 1, x - p[k - 1], y);
		}
		if (x <= p[k - 1] && y > p[k - 1]) {
			pasi += p[k - 1] * p[k - 1] * 3;
			fractal(k - 1, p[k] + 1 - y, p[k - 1] - x + 1);
		}
		if (x > p[k - 1] && y > p[k - 1]) {
			pasi += p[k - 1] * p[k - 1] * 2;
			fractal(k - 1, x - p[k - 1], y - p[k - 1]);
		}
	}
	return;
}
int main() {
	in >> k >> y >> x;
	p[0] = 1;
	for (i = 1; i <= 15; i++) {
		p[i] = p[i - 1] * 2;
	}
	fractal(k, x, y);
	out << pasi;
	return 0;
}