Cod sursa(job #998157)

Utilizator poptibiPop Tiberiu poptibi Data 15 septembrie 2013 22:37:20
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
using namespace std;

int Go(int K, int X, int Y)
{
    if(K == 0) return 0;
    K --;
    int Mid = (1 << K);
    if(X <= Mid && Y <= Mid) return Go(K, Y, X);
    else if(X > Mid && Y <= Mid) return Mid * Mid + Go(K, X - Mid, Y);
    else if(X > Mid && Y > Mid) return 2 * Mid * Mid + Go(K, X - Mid, Y - Mid);
    else return 3 * Mid * Mid + Go(K, 2 * Mid - Y + 1, Mid - X + 1);
}

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

    int K, X, Y;
    scanf("%i %i %i", &K, &X, &Y);
    printf("%i\n", Go(K, Y, X));

    return 0;
}