Cod sursa(job #1742314)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 16 august 2016 12:05:04
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <cstdio>

using namespace std;

int solve(int k, int x, int y)
{
	if (!k) return 0;
    int p = 1 << (k-1);
	int cadran, nx, ny;
    if (x <= p && y <= p) {
		cadran = 0;
		nx = y;
		ny = x;
    }
    else if (x <= p) {
		cadran = 1;
		nx = x;
		ny = y - p;
    }
    else if (y > p) {
		cadran = 2;
		nx = x - p;
		ny = y - p;
    }
    else {
		cadran = 3;
		nx = p+1-y;
		ny = p+1-(x-p);
    }
    return cadran*p*p + solve(k-1, nx, ny);
}

int main()
{
	freopen("fractal.in", "r", stdin);
	freopen("fractal.out", "w", stdout);

	int k, x, y;
	scanf("%d %d %d", &k, &x, &y);
	printf("%d", solve(k, x, y));

    return 0;
}