Cod sursa(job #742130)

Utilizator visanrVisan Radu visanr Data 28 aprilie 2012 17:44:56
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <cstdlib>
using namespace std;


int k, x, y;


int fractal (int k, int x,int y)
{
    if(k == 0) return 0;
    int mid = (1 << (k - 1)), size = mid * mid;
    if(x <= mid && y <= mid) return fractal (k - 1, y, x);
    if(x > mid && y <= mid) return size + fractal (k - 1, x - mid, y);
    if(x > mid && y > mid) return 2 * size + fractal (k - 1, x - mid, y - mid);
    if(x <=mid && y > mid) return 3 * size + fractal (k - 1, 2 * mid - y + 1, mid - x + 1);
}

int main()
{
    freopen("fractal.in","r",stdin);
    freopen("fractal.out","w",stdout);
    scanf("%i %i %i", &k, &x, &y);
    printf("%i\n", fractal (k, y, x));
    return 0;
}