Cod sursa(job #597309)

Utilizator cosmyoPaunel Cosmin cosmyo Data 21 iunie 2011 19:18:58
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>

int sol = 0 , x, y, k;

void divide(int k, int x, int y){
    if(k){
    int p = 1 << (k - 1);
    if(x <= p && y <= p)
        divide(k - 1, y, x);
    if(x <= p && y > p){
        sol += 3 * p * p;
        divide(k - 1, 2 * p - y + 1, p - x + 1);
    }
    if(x > p && y <= p){
        sol += p * p;
        divide(k - 1, x - p, y);
    }
    if(x > p && y > p){
        sol += 2 * p * p;
        divide(k - 1, x - p, y - p);
    }
    }
}

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